我想知道如何验证三个点,以便知道这些点是否正确以生成一个圆。我想知道例外是什么,所以我可以继续生成圆方程。
例如,一个例外是您不能在一条直线上有三个点。
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/