【发布时间】:2020-09-05 05:14:45
【问题描述】:
我正在使用粗略表示为的网格
{
vertices: [{
x: number,
y: number,
z: number
}, ...],
faces: [{
verticeIndices: [number, number, number]
}, ...]
}
现在给定一个顶点,我想知道这个顶点是否被面包围。问题是我什至不知道从哪里开始。看起来会很简单(因为在可视化网格时,很容易知道顶点是否被面包围),但我不知道如何表达。
所以这里有一个 2D 的示例图片:
很容易看出涂成绿色的顶点没有被面包围 - 如果我们要连接左下角的两个顶点,那么中间那些旁边的那个会变成红色。
在这种 2D 情况下(可能更简单?)我想象的唯一方法是:
- 找到所有相邻的面。
- 找出每个面在该顶点上的角度。
- 如果加起来是 360,则全部覆盖,否则不覆盖。
但我认为在 3D 中工作时这并不能真正成立...有没有一种简单的方法可以确定顶点是否被 3D 中的面包围?
【问题讨论】: