化石原创文章,转载请注明来源并保留原文链接


给定3个3D的点,分别为 A: (x1, y1, z1), B:(x2, y2, z2), C:(x3, y3, z3),依次连接点组成三角形,要求知道它是顺时针还是逆时针。

这个问题必须加入一个点,因为给定的3个点可能的情况是共线或者共面。即使在后者共面的情况下,从面的不同两侧看过去,顺序会颠倒。

假设这个点是 P:(xe, ye, ze)。那么行列式

    |x1 y1 z1 1|
     |x2 y2 z2 1|
 d = |x3 y3 z3 1|
     |xe ye ze 1|

的结果就可以判断:

d > 0, 则A到B到C到A组成的三角形对于P点来看就是顺时针。
d < 0, 逆时针。
d = 0, P在ABC面上。


化石原创文章,转载请注明来源并保留原文链接