我想知道如何验证三个点,我知道这些点是否正确以生成一个圆。我想知道例外是什么,所以我可以继续生成圆方程。
例如,一个例外是你不能在一条直线上有三个点。 P1(34,15) P2(67,15) P3(27,15)
正如您所看到的那样,他们在' Y'上有相同的价值,因此您无法找到这三个点的圆等式,会出现错误。
我应该考虑哪些其他例外?
答案 0 :(得分:2)
如果圆点在直线上,则点不能定义圆,因此可以检查两个矢量的叉积是否为零
if CrossProduct(P2-P1, P3-P1) <> 0 then
OK, circle is possible
in coordinates:
(P2.X - P1.X) * (P3.Y - P1.Y) - (P3.X - P1.X) * (P2.Y - P1.Y)
请注意,点的重合也会得到零结果,因此您可以将这些情况分开(可以通过两个或单个点构建无限数量的圆)