我正在处理一个网格,它大致表示为
{
vertices: [{
x: number,
y: number,
z: number
}, ...],
faces: [{
verticeIndices: [number, number, number]
}, ...]
}
现在给定一个顶点,我想知道这个顶点是否被面包围。问题是我甚至不知道从哪里开始。这似乎是很简单的事情(因为在可视化网格时,很容易知道一个顶点是否被面包围),但我不知道如何表达。
所以这里有一张2D的例子图。
很容易看到绿色的顶点没有被面包围 如果我们把左下角的两个顶点连接起来,那么中间的顶点就会变成红色。
在这种2D的情况下(可能更简单?),我想象的唯一方法是通过。
但我认为这在3D工作时并不成立...... 有什么简单的方法可以找出一个顶点在3D中是否被面包围?
我只是找到了一个可能的答案,但我想看看是否有更简单的方法。
有另一种方法可以在二维中找到这个答案,而且可以扩展到三维中
如果所有相邻的顶点都构成了一个循环,那么就意味着该顶点被包围了(如果我没有说错,我漏掉了一个边缘的情况下)。
而且看样子这个应该是可以放大到3D的。
我把这个问题留着,以防有人有其他更好的想法。