首先让我澄清一下..我不是在问 2D 网格,要确定 2D 网格的缠绕顺序,使用法向 z 方向非常容易。
其次,我不要求任何优化算法,我不担心时间或速度,我只想用我的网格来做。
当我使用贪婪投影三角剖分算法对 3D 对象进行三角剖分时,会发生此问题。检查所附图片。
如果我使用“计算有符号面积”或“三角形的 AB 和 BC 向量的交叉产生”对该模型应用 2D 方法,它只能求解 2D 网格,但 3D 网格又如何呢?
首先我们需要检查哪些三角形在 3D 网格中缠绕方向错误,然后我们只考虑这些三角形,那么问题是,我们如何检查哪些三角形在 3D 中缠绕方向错误?我们不能只用 2D 方法来做我已经测试过但没有成功。
例如,对于球体,我们不能对球体应用 2D 方法。那么有没有办法解决这个问题呢?
谢谢。

更新#1:
下面是检查哪条边具有相同缠绕的算法。效果不太好,我不知道为什么。理论上它应该纠正所有三角形,但它没有纠正。例如,在附图中检查球体的情况下。有问题。
void GLReversedEdge(int i, int j, GLFace *temp)
{
//i'th triangle
int V1 = temp[i].v1;
int V2 = temp[i].v2;
int V3 = temp[i].v3;
//i'th triangle edges
int E1[] ={V1, V2};
int E2[] ={V2, V3};
int E3[] ={V3, V1};
//adjacent triangle
int jV1 = temp[j].v1;
int jV2 …Run Code Online (Sandbox Code Playgroud)