如何验证点以生成圆方程
How to validate points to generate a circle equation
我想知道如何以一种我可以知道这些点是否正确生成圆的方式验证三个点。我想知道有哪些例外情况,以便我可以继续生成圆方程。
例如,一个例外是不能在一条直线上有三个点。
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)
请注意,点的重合也会给出零结果,因此您可以将这些情况分开(可以通过两个或一个点构建无限数量的圆)
我想知道如何以一种我可以知道这些点是否正确生成圆的方式验证三个点。我想知道有哪些例外情况,以便我可以继续生成圆方程。
例如,一个例外是不能在一条直线上有三个点。 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)
请注意,点的重合也会给出零结果,因此您可以将这些情况分开(可以通过两个或一个点构建无限数量的圆)