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

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

如您所见,它们在“ Y”上的值相同,因此找不到这三个点的圆方程,会出现错误。

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

最佳答案

如果点在直线上,则点不能定义圆,因此可以检查两个向量的叉积是否为零

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)


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

关于javascript - 如何验证点以生成圆方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41594229/

10-12 00:07
查看更多