如何检测所选顶点是否位于三角形网格的边界上?
How to detect if selected vertex lies on the border of a triangle mesh?
我有一个用顶点坐标列表表示的三角形网格,三角形存储在顶点索引列表和角索引列表中。我还有一个角 table 存储顶点坐标、下一个角、前一个角、对角和左右角(入射三角形的)。在我的程序中,用户可以 select 一个顶点,但是我无法检测 selected 点是否位于网格的边界上(因为它需要独特的处理)。我设法检测到它所在的三角形是否是边界三角形。但是如何检查 selected 顶点是否也是边界顶点?
有多种方法可以识别边界顶点。
顶点 v 是边界顶点
- 如果它属于至少一个边界边(只有一个相邻面的边)或
- 如果点边图中v的邻域不形成环
如果你想识别三角形网格中的顶点 v,你可以计算每个邻域顶点 w 有多少条 (v,w) 边。如果存在只有一条 (v,w) 边的顶点 w,则顶点 v(以及顶点 w)将是边界顶点。
我有一个用顶点坐标列表表示的三角形网格,三角形存储在顶点索引列表和角索引列表中。我还有一个角 table 存储顶点坐标、下一个角、前一个角、对角和左右角(入射三角形的)。在我的程序中,用户可以 select 一个顶点,但是我无法检测 selected 点是否位于网格的边界上(因为它需要独特的处理)。我设法检测到它所在的三角形是否是边界三角形。但是如何检查 selected 顶点是否也是边界顶点?
有多种方法可以识别边界顶点。
顶点 v 是边界顶点
- 如果它属于至少一个边界边(只有一个相邻面的边)或
- 如果点边图中v的邻域不形成环
如果你想识别三角形网格中的顶点 v,你可以计算每个邻域顶点 w 有多少条 (v,w) 边。如果存在只有一条 (v,w) 边的顶点 w,则顶点 v(以及顶点 w)将是边界顶点。