圆上三点坐标计算圆心坐标

原理

圆上任意两点的中垂线都会相交于圆心。

三点共线

假设有3个点 \(P_{1}(x_{1}, y_{1})\), \(P_{2}(x_{2}, y_{2})\), \(P_{3}(x_{3}, y_{3})\)
若3点共线,则任意两点的斜率必然相等。比如 \(K_{1}=\frac{y_{1}-y_{2}}{x_{1}-x_{2}}\)\(K_{2}=\frac{y_{1}-y_{3}}{x_{1}-x_{3}}\)
则 K1=K2,考虑到误差,|k1-k2|<1e-5,即可判定共线,无法计算圆心。

圆心

假设圆心坐标 (x,y)。圆心到任意点的距离都是圆的半径,则有

\[\begin{cases} (x-x_{1})^{2}+(y-y_{1})^{2}=(x-x_{2})^{2}+(y-y_{2})^2 \\ (x-x_{1})^{2}+(y-y_{1})^{2}=(x-x_{3})^{2}+(y-y_{3})^2 \end{cases} \Longrightarrow \begin{cases} 2(x_{1}-x_{2})x+2(y_{1}-y_{2})y=x_{1}^2-x_{2}^2+y_{1}^2-y_{2}^2 \\ 2(x_{1}-x_{3})x+2(y_{1}-y_{3})y=x_{1}^2-x_{3}^2+y_{1}^2-y_{3}^2 \end{cases} \Longrightarrow \begin{cases} x+\frac{y_{1}-y_{2}}{x_{1}-x_{2}}y=\frac{x_{1}^2-x_{2}^2+y_{1}^2-y_{2}^2}{2(x_{1}-x_{2})} \\ x+\frac{y_{1}-y_{3}}{x_{1}-x_{3}}y=\frac{x_{1}^2-x_{3}^2+y_{1}^2-y_{3}^2}{2(x_{1}-x_{3})} \end{cases}\]

假设

\[\begin{aligned} a & = x_{1}-x_{2} \\ b & = y_{1}-y_{2} \\ c & = x_{1}-x_{3} \\ d & = y_{1}-y_{3} \\ e & = \frac{x_{1}^2-x_{2}^2+y_{1}^2-y_{2}^2}{2} \\ f & = \frac{x_{1}^2-x_{3}^2+y_{1}^2-y_{3}^2}{2} \end{aligned}\]

\[\left\{\begin{matrix} x=\frac{bf-de}{bc-ad} \\ y=\frac{ce-af}{bc-ad} \end{matrix}\right. \Longrightarrow \left\{\begin{matrix} x=\frac{(y_{1}-y_{2})(x_{1}^2-x_{3}^2+y_{1}^2-y_{3}^2)-(y_{1}-y_{3})(x_{1}^2-x_{2}^2+y_{1}^2-y_{2}^2)}{2[(y_{1}-y_{2})(x_{1}-x_{3})-(x_{1}-x_{2})(y_{1}-y_{3}))]} \\ y=\frac{(x_{1}-x_{3})(x_{1}^2-x_{2}^2+y_{1}^2-y_{2}^2)-(x_{1}-x_{2})(x_{1}^2-x_{3}^2+y_{1}^2-y_{3}^2)}{2[(y_{1}-y_{2})(x_{1}-x_{3})-(x_{1}-x_{2})(y_{1}-y_{3}))]} \end{matrix}\right. \]

半径

\[\begin{aligned} R & = \sqrt{(x-x_{1})^2+(y-y_{1})^2} \\ & = \sqrt{(\frac{bf-de}{bc-ad} -x_{1})^2+(\frac{ce-af}{bc-ad} -y_{1})^2} \end{aligned}\]

posted @ 2023-06-06 11:04  wesson2019  阅读(2319)  评论(0编辑  收藏  举报