代码之家  ›  专栏  ›  技术社区  ›  Tigran

分裂选择算法

  •  0
  • Tigran  · 技术社区  · 15 年前

    我遇到了一个问题,用一种特殊的方法在模型中选择三角形。 用户有一个模型(由三角形制成),在该模型上定义一些边线(切割线,如果你愿意),然后根据边线的垂直阵列,我想选择模型的一部分或同一模型的另一部分。 这是照片。 alt text

    切割线在一个模型周围做了一个圆,我想选择一个模型,比如说在区域(1)中,基于切割线的垂直度。 我对场景中的任何对象(顶点与三角形、三角形与直线、顶点与直线等)都有相关的信息

    P、 如果我们假设Y轴总是在一个方向上,比如说向下, 如果你只想为每个顶点选择相邻的三角形,它们的Y坐标主要是顶点的,这是行不通的,因为,如果你看图片,(2)选择中的三角形,它是一个顶点的邻接三角形,它的Y坐标符合条件,但这不是我想选择的三角形。

    关于这个问题有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Yakov Galka    15 年前

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

    您希望将网格分离为两个不相交的面集,以便它们的边界是由一系列边定义的多边形线。当使用这样的措辞时,解决方案就是在面图中找到连接的组件,当两个面被认为是相邻的,如果它们共享一条边,而这条边不是切割线的一部分。所以这就把你的问题简化为经典的图论问题,叫做“连通分量”,可以在O(Nα(N))时间内完成。