转载于:原文链接
给定三角形三个顶点的坐标,如何求三角形的外心的坐标呢?
例如 :给定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=x2^2+y2^2-x1^2-y1^2$
$2(x3-x2)x+2*(y3-y2)y=x3^2+y3^2-x2^2-y2^2$
令$A1=2*(x2-x1);$
$ B1=2*(y2-y1)$
$C1=x2^2+y2^2-x1^2-y1^2$
$A2=2*(x3-x2)$
$B2=2*(y3-y2)$
$C2=x3^2+y3^2-x2^2-y2^2$
即
$A1*x+B1y=C1$
$ A2*x+B2y=C2$
3.最后根据克拉默法则:
$x=((C1B2)-(C2B1))/((A1B2)-(A2B1))$
$y=((A1C2)-(A2C1))/((A1B2)-(A2B1))$
因此,x,y为最终结果;
对于空间中的三角形,只不过最后解方程组的时候是三元方程组
1 | int main() |