如何在2D/3D闭合曲线间进行三角剖分?聚焦2D凸闭合曲线场景
2D凸闭合曲线间的三角剖分解决方案
针对方法一的缺陷修复
你提到的投影法边界连接过多的问题,核心原因是投影后边界点在剖分时会和非对应边界点产生不必要的连接。解决思路是在剖分前添加约束条件:
- 保留原曲线的边界拓扑:在投影后的点集中,明确标记属于原两条曲线上下部分的边界点,强制约束同一条曲线的相邻投影点必须保持连接,同时只允许两条曲线的对应边界区域点之间建立连接
- 使用带约束的Delaunay三角剖分算法:比如在调用剖分工具时,预先定义好边界边(原曲线的相邻顶点连线),算法会自动避免跨边界的非法连接,这样恢复原坐标后就不会出现多余的边界顶点连接
更优的2D凸闭合曲线剖分方法
对于两条凸闭合曲线(假设是嵌套或分离的凸环),最直接高效的方案是建立对应点的拓扑映射后生成结构化网格:
- 参数化对齐两条曲线:分别对两条凸曲线进行弧长参数化,将两条曲线的点按弧长比例一一对应(不需要强行加密到相同点数,可通过插值生成对应点)
- 生成四边形网格再拆分:连接每一对对应点,形成一系列四边形,再将每个四边形沿对角线拆分(可选择最优对角线,比如避免锐角的方向),得到规整的三角网格
- 嵌套凸环的特殊处理:如果是内外嵌套的凸环,可先从外环任意顶点向内环对应顶点连线,将整个区域拆分为一个大的多边形,再对这个多边形进行标准的Delaunay剖分,同时约束外环和内环的边界边不被破坏
方法二的可行性分析
你提出的“点加密+最近点连接”思路在部分场景下可行,但存在两个关键问题:
- 拓扑不一致风险:如果两条曲线的形状差异较大,最近点的连接可能会出现交叉,导致生成的多边形自相交,后续无法正常剖分
- 网格质量差:最近点连接不一定能保证三角形的内角均匀,容易出现大量狭长三角形
如果要优化这个思路,建议把“最近点”替换为参数化对应点,即按曲线的弧长或角度参数一一匹配顶点,这样生成的连接不会交叉,且网格质量更可控
内容的提问来源于stack exchange,提问作者korisnikprog
相关产品推荐
相关产品推荐

