You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CGAL中移除非闭合边?此类边的拓扑/图论名称是什么?

移除CGAL Arrangement中非闭合多边形边的解决方案

你提供的CGAL Arrangement示意图:

,_____,  ,_____,   ,_____,
|     |  |     |   |     |
|--   |  |     |---|     |   ---
|_____|  |_____|   |_____|

你需要移除的是不构成多边形闭合部分的边,包括正方形内部水平边、连接两个正方形的边、孤立的短边,以下是对应的解答:

一、CGAL中的实现方法

可以实现。核心是利用CGAL Arrangement的拓扑遍历与边属性判断:

  • 遍历Arrangement中的所有Edge对象:
    • 识别孤立边:这类边的左右关联面至少有一个是无限面,且不参与任何环结构,直接标记移除
    • 识别内部共享边:这类边同时属于两个有限面,且不属于任何面的外边界(通过检查面的边界环是否包含该边来判断),标记为待移除
  • 批量移除所有标记的边,操作时注意维护Arrangement的拓扑完整性,避免因单次移除导致的结构异常

二、拓扑学/图论中的术语

这类边在不同场景下的常用称呼:

  • 内部边(internal edge):平面图中连接两个有限面的公共边,不属于任何区域的外轮廓
  • 非边界边(non-boundary edge):不参与任何有界多边形闭合轮廓构成的边
  • 孤立边(isolated edge):不隶属于任何环(cycle)的边,即图中单独的那条短边

内容的提问来源于stack exchange,提问作者Hugal31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:50:28