我需要一种算法来修复3D三角网格。期望的条件是2n个三角形(大多数时间为2个三角形)共享边缘。相反 输入网格包含边缘处具有2n + 1个三角形(1,3,..)的个案。一世 实施了一些启发式方法:
关闭顶点(由于舍入错误)合并为一个。
如果之后新的顶点可以与合理的其他顶点合并,则会分割边界边缘。
洞穴被三角测量到某个区域阈值。
这很适合许多输入(我关心的是自我中断) 在后期阶段),但有网格,这些启发式失败。该 主要问题是修复边缘不仅仅是局部结果的决定:每个创建的三角形都会减少后续修复步骤可用的边缘集。因此,只有一个错误的决定可能会导致一系列连续的错误。
这个问题似乎接近表面重建问题,但我有 已经是大部分表面,因此需要部分重建算法来考虑现有的三角形。有什么想法吗?
答案 0 :(得分:1)
您可以进行有限的组合探索,动态编程风格,而不是使三角形创建不可逆转。您可以为每个操作(也可能还有结果)分配成本,以评估在任何给定阶段哪些组合最有希望。
据推测,大多数情况都是本地化的,并且不需要动态编程的全部功能(和费用)。但是,可以并行探索需要多个依赖操作的案例,并从实现封闭的那些案例中选择最佳的半局部解决方案。