3d 确定三维多边形的顺序

3d 确定三维多边形的顺序,3d,polygon,concave,3d,Polygon,Concave,我有一个3D顶点列表,创建一个多边形。 我需要对它进行三角测量,并使用割耳算法。 我的多边形是非凸的,所以我需要找到多边形中的凹角。 我也不知道我的多边形是哪个方向(顺时针还是逆时针) 谁能帮我确定是顺时针还是逆时针 谢谢使用交叉乘积 使用叉积 将多边形投影到一个方便的平面(假设z=0),然后使用雷尼尔的方法可能是最简单的 1) 将所有z设置为0。这不会改变答案 2) 使用类似reinier's或的方法来确定多边形是顺时针还是逆时针,从而确定叉积“应该是”+z还是-z 3) 任何具有叉积且指向“

我有一个3D顶点列表,创建一个多边形。 我需要对它进行三角测量,并使用割耳算法。 我的多边形是非凸的,所以我需要找到多边形中的凹角。 我也不知道我的多边形是哪个方向(顺时针还是逆时针)


谁能帮我确定是顺时针还是逆时针

谢谢

使用交叉乘积

使用叉积


将多边形投影到一个方便的平面(假设z=0),然后使用雷尼尔的方法可能是最简单的

1) 将所有z设置为0。这不会改变答案

2) 使用类似reinier's或的方法来确定多边形是顺时针还是逆时针,从而确定叉积“应该是”+z还是-z


3) 任何具有叉积且指向“错误”方向的顶点都是凹的。

将多边形投影到一个方便的平面(假设z=0)中,然后使用类似reinier的方法可能是最简单的

1) 将所有z设置为0。这不会改变答案

2) 使用类似reinier's或的方法来确定多边形是顺时针还是逆时针,从而确定叉积“应该是”+z还是-z


3) 任何带有叉积且指向“错误”方向的顶点都是凹的。

顺时针或逆时针取决于多边形的观察方向,在3d中它不是绝对的,我想你在使用库(如OpenGL)吗?如果是这样的话,你也许可以使用像面筋振荡器这样的东西。如果你需要的话,这将很容易扩展到非凸多边形。顺时针或逆时针取决于你观察多边形的方向,它在3d中不是绝对的,我想你在使用库(比如OpenGL)吗?如果是这样的话,你也许可以使用像面筋振荡器这样的东西。这将很容易缩放到非凸多边形(如果需要)。几乎正确,但我们需要检查多边形不在垂直于XY平面的平面内(在这种情况下,将所有z设置为0将使其退化为直线)。几乎正确,但我们需要检查多边形不在垂直于XY平面的平面内(在这种情况下,将所有z设置为0将使其退化为一条直线)。