如何验证点以生成圆方程

时间:2017-01-11 15:05:44

标签: javascript math geometry equation

我想知道如何验证三个点,我知道这些点是否正确以生成一个圆。我想知道例外是什么,所以我可以继续生成圆方程。

例如,一个例外是你不能在一条直线上有三个点。 P1(34,15) P2(67,15) P3(27,15)

正如您所看到的那样,他们在' Y'上有相同的价值,因此您无法找到这三个点的圆等式,会出现错误。

我应该考虑哪些其他例外?

1 个答案:

答案 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)

请注意,点的重合也会得到零结果,因此您可以将这些情况分开(可以通过两个或单个点构建无限数量的圆)