Geometry 二维定向测试重心坐标

Geometry 二维定向测试重心坐标,geometry,computational-geometry,triangular,robust,Geometry,Computational Geometry,Triangular,Robust,如果我有一个整数重心坐标下的有序三元组点, 我如何在他们身上测试方向? (我想知道这些点是共线的,是左转还是右转) “算法”必须非常健壮,所以我不想将坐标转换为笛卡尔坐标 对于笛卡尔人来说,有一种非常好的方法可以只用乘法和加法来确定这一点: 这里有一个类似的方法来确定三个点是否共线, 但我不知道是否可以将其用于此应用程序: 正如上一篇文章所说,对于CCW基三角形,PQR的ABC符号区域对于CCW顺序是正的(第1页的脚注),因此三元组p,Q,R在行列式中左转 x1 y1 z1 x2 y

如果我有一个整数重心坐标下的有序三元组点, 我如何在他们身上测试方向? (我想知道这些点是共线的,是左转还是右转)

“算法”必须非常健壮,所以我不想将坐标转换为笛卡尔坐标

对于笛卡尔人来说,有一种非常好的方法可以只用乘法和加法来确定这一点:

这里有一个类似的方法来确定三个点是否共线, 但我不知道是否可以将其用于此应用程序:

正如上一篇文章所说,对于CCW基三角形,PQR的ABC符号区域对于CCW顺序是正的(第1页的脚注),因此三元组p,Q,R在行列式中左转

 x1  y1  z1
 x2  y2  z2
 x3  y3  z3

具有正值(定理10),并且点对于零行列式共线

,正如上一篇文章所说,对于CCW基三角形,PQR的ABC符号区域对于CCW顺序为正(第1页的脚注),因此三元组p,Q,R在行列式为

 x1  y1  z1
 x2  y2  z2
 x3  y3  z3

具有正值(定理10),且点与零行列式共线

否,此测试不需要它。如果所有z值均为零,该怎么办?可以这样表示所有坐标,行列式为0,即使它们不共线。问题更像是,是否还有其他机会防止此测试失败。对于边AB上的点,Z值为零(更彻底地说,在包含此边的线上)。只有当所有三个点位于基本三角形的同一条边上时,所有z值才可能为零,因此它们是共线的。没有失败。不,此测试不需要。如果所有z值都为零怎么办?可以这样表示所有坐标,行列式为0,即使它们不共线。问题更像是,是否还有其他机会防止此测试失败。对于边AB上的点,Z值为零(更彻底地说,在包含此边的线上)。只有当所有三个点位于基本三角形的同一条边上时,所有z值才可能为零,因此它们是共线的。没有失败。
 x1  y1  z1
 x2  y2  z2
 x3  y3  z3