分裂选择算法

时间:2010-10-01 13:26:02

标签: algorithm opengl selection

我遇到了以特定方式在模型中选择三角形的问题。 问题很简单: 用户有一个模型(由三角形组成),在该模型上定义一些边缘线(如果你愿意的话,切割线),并且在基于边缘线的顶点数组后,我想选择模型的一部分或另一部分同一型号。 这是图片。 alt text

切割线在模型周围形成一个圆圈,我想选择一个模型,假设在区域(1)中基于切割线的顶点。 我有关于场景中任何对象的关系的信息(顶点与三角形,三角形与线条,顶点与线条等)

P.S。如果我们假设,例如Y轴总是朝一个方向,那么让我们说下来, 并且想要为每个具有顶点Y坐标大的顶点选择相邻三角形,它将不起作用,因为,如果你看图像,(2)选择中的三角形它是一个从切割线到顶点的neigbour三角形,它的顶点Y坐标满足条件,但这不是我想选择的riangle。

关于主题的任何想法?

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解这个问题。如果是,那么这是我的答案:

您希望将网格分成两个不相交的面集,使其边界是由一系列边缘定义的折线。当这样的措辞时,如果两个面被认为是相邻的,如果它们共享不是切割线的一部分的边,则解决方案就是在面图中找到连通分量。因此,这可以将您的问题减少到可以在O(Nα(N))时间内完成的称为“连通分量”的经典图论理论问题。