如何在半边数据结构中找到边界顶点的两个边界边缘?

问题描述 投票:0回答:3

enter image description here

我可以通过简单地找到最适合的计数器时钟:

while (edge && edge->twin()) { edge = edge->twin()->next() }
但我无法通过穿越边缘获得第二边的边缘来找到一种方法,基本上找到了另一个极端(时钟明智的边缘)

ref:

http://www.flipcode.com/archives/the_half-edge_data_structure.shtml

data-structures graphics mesh
3个回答
2
投票
检查是否存在。如果确实如此,请去那里迭代。如果不是,则是您的边界半边缘。

对于这些情况,您可以使用边界面,这是一个未呈现的虚拟脸。该面的边缘形成一个环,这是形成网格边界环的边缘的双胞胎。这使您可以像往常一样遍历 - >接下来(检查连接到顶点的所有边缘/面以及所有相邻的顶点),其中每个具有边界面的边缘显然都是边界。
    

如果您的HDS通过标记边界来编码边界

1
投票
,那很简单:找到一个边界面向您的顶点的一个边缘,然后沿着脸部获得下一个边缘。

如果HDS通过标记边界来编码边界

Edges

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.