三点确定一个圆的计算方法
最近在写的一个软件需要根据三个坐标点来计算一个圆。因此花了点时间推导了相关的公式。这个推导不算太难,放在这里主要是做个备忘。
我们设一个圆的圆心坐标为
,半径为 r 。那么这个圆的方程可以写为:
在这个圆上随便取三个点,设这三个点的坐标分别是
那么有:
公式(1)(2)相减,(1)(3)相减之后经过化简可以得到:
有唯一解的条件是系数行列式不为 0 :
简单变变型也就是:
这样写几何含义就很明显了,三点不能共线。
设:
那么 :
有了 x 0 和 y 0 的值后,带入(1) 式就可以得到 r 的值。至此,三点确定圆的问题就解决了。
下面是个 C++ 代码(用到了Qt 的 QPointF 类型):#incl