作者:叶飞影
链接:https://www.zhihu.com/question/40422123/answer/86514178
来源:知乎
给定三角形三个顶点的坐标,如何求三角形的外心的坐标呢?
例如 :给定a(x1,y1) b(x2,y2) c(x3,y3)求外接圆心坐标O(x,y)
- 首先,外接圆的圆心是三角形三条边的垂直平分线的交点,我们根据圆心到顶点的距离相等,可以列出以下方程:
(x1-x)(x1-x)+(y1-y)(y1-y)=(x2-x)(x2-x)+(y2-y)(y2-y);
(x2-x)(x2-x)+(y2-y)(y2-y)=(x3-x)(x3-x)+(y3-y)(y3-y);
2.化简得到:
2*(x2-x1)x+2(y2-y1)y=x22+y22-x12-y12;
2*(x3-x2)x+2(y3-y2)y=x32+y32-x22-y22;
令:A1=2*(x2-x1);
B1=2*(y2-y1);
C1=x22+y22-x12-y12;
A2=2*(x3-x2);
B2=2*(y3-y2);
C2=x32+y32-x22-y22;
即:A1x+B1y=C1;
A2x+B2y=C2;
3.最后根据克拉默法则:
x=((C1B2)-(C2B1))/((A1B2)-(A2B1));
y=((A1C2)-(A2C1))/((A1B2)-(A2B1));
因此,x,y为最终结果;
已知三点坐标,求外接圆圆心坐标与半径。
a=((y2-y1)(y3y3-y1y1+x3x3-x1x1)-(y3-y1)(y2y2-y1y1+x2x2-x1x1))/(2.0*((x3-x1)(y2-y1)-(x2-x1)(y3-y1)));
b=((x2-x1)(x3x3-x1x1+y3y3-y1y1)-(x3-x1)(x2x2-x1x1+y2y2-y1y1))/(2.0*((y3-y1)(x2-x1)-(y2-y1)(x3-x1)));
r2=(x1-a)(x1-a)+(y1-b)(y1-b);