加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

已知圆上三点坐标求圆心和半径

(2013-01-01 18:36:14)
标签:

圆上三点求圆心和半径

三元二次方程组

求半径圆心程序

程序

几何求解

数学问题:

就是解三元二次方程组!

X,Y,R为未知数,x1,y1,x2,y2,x3,y3为常数
(x1-X)²-(y1-Y)²=R²      (1)

(x2-X)²-(y2-Y)²=R²      (2)

(x3-X)²-(y3-Y)²=R²      (3)

(1)-(2),
就是左边减左边,右边减右边,得到
x1²-2Xx1+X²-(y1²-2Yy1+Y²)-(x2²-2Xx2+X²)+(y2²-2Yy2+Y²)=R²-R²
整理得
x1²+y2²-y1²-x2²+2Xx2-2Xx1+2Yy1-2Yy2=0
(2)-(1)
整理得:
x2²+y3²-y2²-x3²+2Xx3-2Xx2+2Yy2-2Yy3=0
再整理上面两式得

(2x2-2x1)X+(2y1-2y2)Y=y1²+x2²-x1²-y2²
(2x3-2x2)X+(2y2-2y3)Y=y2²+x3²-x2²-y3²

程序问题:

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);
r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));

其中:变量和常量都为双精度型(double)

编程出来的结果:

http://s11/mw690/9d6efbb34d23818e6de8a&690

然后计算结果:

http://s8/mw690/9d6efbb34d23825307a07&690

有需要程序原件的可以找我哈~~


0

阅读 收藏 喜欢 打印举报/Report
前一篇:胡思乱想
后一篇:第二天
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有