| 查看: 1151 | 回复: 16 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
woxiangfei木虫 (文坛精英)
|
[交流]
【求助】50个金币求一特小程序
|
||
|
请那位高手给编个小程序,就是计算一个三角形中点,即:已知三角形的三个顶点坐标,求三角形中的到这三点的距离相等的点的坐标。兄弟急用呀。 [ Last edited by csfn on 2008-12-29 at 20:19 ] |
» 猜你喜欢
实验室接单子
已经有6人回复
假如你的研究生提出不合理要求
已经有11人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
alwens
铁杆木虫 (正式写手)
老木虫
- 应助: 0 (幼儿园)
- 贵宾: 0.45
- 金币: 5248.8
- 散金: 50
- 帖子: 994
- 在线: 805.8小时
- 虫号: 8486
- 注册: 2003-04-27
- 性别: GG
- 专业: 药物设计与药物信息

13楼2008-01-09 16:20:34
alwens
铁杆木虫 (正式写手)
老木虫
- 应助: 0 (幼儿园)
- 贵宾: 0.45
- 金币: 5248.8
- 散金: 50
- 帖子: 994
- 在线: 805.8小时
- 虫号: 8486
- 注册: 2003-04-27
- 性别: GG
- 专业: 药物设计与药物信息

2楼2008-01-07 14:10:02
alwens
铁杆木虫 (正式写手)
老木虫
- 应助: 0 (幼儿园)
- 贵宾: 0.45
- 金币: 5248.8
- 散金: 50
- 帖子: 994
- 在线: 805.8小时
- 虫号: 8486
- 注册: 2003-04-27
- 性别: GG
- 专业: 药物设计与药物信息
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
csfn(金币+50,VIP+0):应楼主的要求奖励,希望继续提供帮助
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"< if((y1==y2)&&(y2==y3)) { cout<<"三点不构成圆!"< } if((y1!=y2)&&(y2!=y3)) { k1=(x2-x1)/(y2-y1); k2=(x3-x2)/(y3-y2); } if(k1==k2) { cout<<"三点不构成圆!"< } 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<<"圆心为("< cout<<"半径为"< } 引用地址: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
zyy816
至尊木虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 9698.1
- 散金: 7
- 红花: 2
- 帖子: 1987
- 在线: 320.1小时
- 虫号: 162947
- 注册: 2006-01-11
- 专业: 理论和计算化学
4楼2008-01-07 15:59:16












回复此楼