24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1248  |  回复: 16
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

woxiangfei

木虫 (文坛精英)

[交流] 【求助】50个金币求一特小程序

请那位高手给编个小程序,就是计算一个三角形中点,即:已知三角形的三个顶点坐标,求三角形中的到这三点的距离相等的点的坐标。兄弟急用呀。

[ Last edited by csfn on 2008-12-29 at 20:19 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

montclimber

金虫 (正式写手)

引用回帖:
Originally posted by zyy816 at 2008-1-7 15:59:
另外一个供参考思路:
1.判断是否是三角形
2.写出任意两边角平分线方程,交点就是圆心座标,交点到任意一边距离就是半径

内切圆对吗?它的圆心到三角形各端点的距离不相等. 有个问题:外心不一定在三角形内哦.

[ Last edited by montclimber on 2008-1-9 at 17:47 ]
每天醒来都觉得不奔跑梦就要死了。
14楼2008-01-09 17:24:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 17 个回答

alwens

铁杆木虫 (正式写手)

老木虫

不支持上传,告诉我邮箱。

[ Last edited by alwens on 2008-1-7 at 14:25 ]
万里夕阳锦背高 翻身犹恨东洋小 太公怎钓?
2楼2008-01-07 14:10:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alwens

铁杆木虫 (正式写手)

老木虫

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
csfn(金币+50,VIP+0):应楼主的要求奖励,希望继续提供帮助
一般的思路是:
1、先判断三点能否构成一个圆,具体来说就是看其中一点是否在另外两点连成的直线上,三点共线的话就输出“error”;
2、如果三点不共线,接下来就是求圆心,即三点构成的三角形的其中两边的垂直平分线交点;
3、最后随便找一点与圆心即可求出半径。

    实际上用两条弦的垂直平分线的交点确定圆心的方法并不好,理由如下:
假设现在假设三点为(x1,y1),(x2,y2),(x3,y3),求它们的中垂线要使用的点斜式,这样一来,要考虑的情况比较多:
1.(x1,y1),(x2,y2)连线和(x2,y2),(x3,y3)连线的斜率为0和无穷大都要考虑,二者组合就是4种,再加上某一连线斜率为0或无穷大,而另一斜线斜率不为0和无穷大,考虑的情况更多了。

     一个更为简单的方法是首先判断三点是否一线,这里分为两种情况:

1.三点连成的直线没有斜率,判断条件(y1==y2)&&(y2==y3)

2.判断任意两点连成的直线斜率是否相等。

3.解方程组,设圆心坐标为(x,y)

圆心到任意两点的距离相等,由此求出x,y的表达式,代入程序。

4.求出圆心,半径迎刃而解。

   
    下面是我的源程序,在vc6.0编译通过。

#include
#include

int main()
{
    int x1,y1,x3,y3;
    double a,b,c,d,e,f;
    double r,k1,k2,x,y,x2,y2;
    cout<<"请输入x1,y1,x2,y2,x3,y3"<     cin>>x1>>y1>>x2>>y2>>x3>>y3;
    if((y1==y2)&&(y2==y3))
{
    cout<<"三点不构成圆!"<     return 0;
}
    if((y1!=y2)&&(y2!=y3))
{
    k1=(x2-x1)/(y2-y1);
    k2=(x3-x2)/(y3-y2);
}
    if(k1==k2)
{
    cout<<"三点不构成圆!"<     return 0;
}
    a=2*(x2-x1);
    b=2*(y2-y1);
    c=x2*x2+y2*y2-x1*x1-y1*y1;
    d=2*(x3-x2);
    e=2*(y3-y2);
    f=x3*x3+y3*y3-x2*x2-y2*y2;
    x=(b*f-e*c)/(b*d-e*a);
    y=(d*c-a*f)/(b*d-e*a);
    cout<<"圆心为("<"<     r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
    cout<<"半径为"<     return 0;
}





引用地址:http://blog.programfan.com/trackback.asp?id=4540

[ Last edited by alwens on 2008-1-7 at 14:36 ]
万里夕阳锦背高 翻身犹恨东洋小 太公怎钓?
3楼2008-01-07 14:35:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyy816

至尊木虫 (著名写手)


csfn(金币+1,VIP+0):thanks,欢迎提供帮助~
另外一个供参考思路:
1.判断是否是三角形
2.写出任意两边角平分线方程,交点就是圆心座标,交点到任意一边距离就是半径
4楼2008-01-07 15:59:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料学硕333求调剂 +11 北道巷 2026-03-24 11/550 2026-03-29 08:31 by fmesaito
[考研] 315求调剂 +4 akie... 2026-03-28 5/250 2026-03-28 21:05 by zhq0425
[考研] 320分,材料与化工专业,求调剂 +9 一定上岸aaa 2026-03-27 13/650 2026-03-28 15:00 by 神马都不懂
[考研] 347求调剂 +3 山顶见α 2026-03-25 3/150 2026-03-28 14:13 by 唐沐儿
[考研] 0703本科郑州大学求调剂 +3 nhj_ 2026-03-25 3/150 2026-03-28 13:24 by Iveryant
[考研] 311求调剂 +4 冬十三 2026-03-24 4/200 2026-03-28 13:17 by 唐沐儿
[考研] 0856,材料与化工321分求调剂 +12 大馋小子 2026-03-27 13/650 2026-03-28 10:56 by self2008
[考研] 272求调剂 +7 脚滑的守法公民 2026-03-27 7/350 2026-03-27 17:23 by laoshidan
[考研] 308求调剂 +7 墨墨漠 2026-03-25 7/350 2026-03-27 14:47 by 狂炫麦当当
[考研] 考研化学308分求调剂 +10 你好明天你好 2026-03-23 12/600 2026-03-27 14:43 by shangxh
[考研] 305求调剂 +5 哇卢卡库 2026-03-26 5/250 2026-03-27 14:01 by laoshidan
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
[考研] 336材料求调剂 +7 陈滢莹 2026-03-26 9/450 2026-03-27 00:20 by wxiongid
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-26 3/150 2026-03-26 19:57 by nihaoar
[考研] 289求调剂 +17 硕星赴 2026-03-23 17/850 2026-03-26 16:18 by 不吃魚的貓
[考研] 一志愿河工大 081700 276求调剂 +4 地球绕着太阳转 2026-03-23 4/200 2026-03-26 14:27 by zzll406
[考研] 一志愿天津大学339材料与化工求调剂 +3 江往卖鱼 2026-03-26 3/150 2026-03-26 09:42 by 王小欠i
[考研] 341求调剂(一志愿湖南大学070300) +5 番茄头--- 2026-03-22 6/300 2026-03-23 23:45 by Txy@872106
[考研] 361求调剂 +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[考研] 336化工调剂 +4 王大坦1 2026-03-23 5/250 2026-03-23 18:32 by allen-yin
信息提示
请填处理意见