几何算法库

✅ 一、通用计算几何库(高精度、工业级)

1. CGAL(Computational Geometry Algorithms Library)

  • 🌐 语言:C++(有 Python 绑定)
  • 📦 特点:
    • 工业标准级,算法最全
    • 支持精确算术,避免浮点误差
    • 提供布尔运算、三角剖分、凸包、网格生成等
  • 🔗 官网:https://www.cgal.org
  • 💡 适用:CAD修复、轮廓处理、自动排样
  • ⚠️ 注意:依赖 Boost、GMP,编译略复杂

2. GEOS(Geometry Engine, Open Source)

  • 🌐 语言:C++,提供 C 和 Java/Python/.NET 封装
  • 📦 特点:
    • 是 CGAL 的"轻量替代品"
    • 支持 OGC(开放地理标准)规范
    • 强项:多边形布尔运算、缓冲区(buffer)、距离计算
  • 🔗 官网:https://libgeos.org
  • 💡 适用:GIS、DXF/SVG 轮廓处理、碰撞检测
  • ✅ Python 使用:pip install Shapely(底层就是 GEOS)

3. Clipper2

  • 🌐 语言:C++ / C# / Python / Delphi

  • 📦 特点:

    • 轻量、高速、开源(Boost 许可)
    • 专攻 多边形裁剪与布尔运算(并、交、差、异或)
    • 支持整型/浮点坐标,抗退化能力强
  • 🔗 官网:https://github.com/AngusJohnson/Clipper2

  • 💡 适用:激光切割轮廓合并、去重叠、偏移路径生成

  • ✅ C# 直接 NuGet 安装:

    bash 复制代码
    Install-Package Clipper2Lib

✅ 二、C# 友好型几何库(.NET 平台推荐)

4. NetTopologySuite (NTS)

  • 🌐 语言:C#

  • 📦 特点:

    • Java 的 JTS 的 .NET 移植版
    • 支持多边形布尔、缓冲区、简化、有效性检查
    • 与 Shapely 接口相似,学习成本低
  • 🔗 官网:https://github.com/NetTopologySuite/NetTopologySuite

  • ✅ NuGet 安装:

    bash 复制代码
    Install-Package NetTopologySuite

5. MathNet.Spatial

  • 🌐 语言:C#

  • 📦 特点:

    • 轻量级,专注 2D/3D 几何计算
    • 提供点、线、面、坐标系变换、投影等
    • 无外部依赖,NuGet 一键安装
  • 🔗 官网:https://github.com/MathNet/mathnet-spatial

  • ✅ 安装:

    bash 复制代码
    Install-Package MathNet.Spatial
  • 💡 适用:路径插值、坐标转换、向量运算


✅ 三、Python 几何库(适合脚本处理)

6. Shapely

  • 🌐 语言:Python

  • 📦 特点:

    • 接口简洁,像写数学公式
    • 基于 GEOS,支持布尔、缓冲、距离、包含判断
  • ✅ 安装:

    bash 复制代码
    pip install shapely
  • 💡 示例:

    python 复制代码
    from shapely.geometry import Polygon
    poly1 = Polygon([(0,0), (2,0), (2,2), (0,2)])
    poly2 = Polygon([(1,1), (3,1), (3,3), (1,3)])
    union = poly1.union(poly2)

适合做"离线图形分析"或"测试算法逻辑"。


7. Pyclipper(Clipper 的 Python 封装)

  • 🌐 语言:Python

  • ✅ 安装:

    bash 复制代码
    pip install pyclipper
  • 💡 特点:速度快,支持整数坐标,适合路径偏移、去重叠


✅ 四、轻量级/专用库

8. Poly2Tri(平面多边形三角剖分)


9. libtess2(3D 可用的三角剖分)


✅ 五、选型建议(按场景)

需求 推荐库
🔧 多边形布尔运算(合并、挖孔) Clipper2CGALNTS
🧹 图形修复、简化、有效性检查 NetTopologySuiteShapely
🗺️ GIS、缓冲区、空间关系 GEOS / Shapely / NTS
📐 精确计算、科研级算法 CGAL
⚡ 快速裁剪、路径偏移 Clipper2 / Pyclipper
🧮 C# 项目集成 Clipper2LibNTSMathNet.Spatial
相关推荐
To_OC6 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495647 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
爱刷碗的苏泓舒11 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽13 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米13 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
星空露珠14 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
QXWZ_IA16 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务
Kel16 小时前
输出层与反分词(Output Layer & Detokenization)
人工智能·算法·架构
陕西企来客16 小时前
2026年7月技术好GEO优化方案:算法适配与内容策略
人工智能·算法·机器学习·技术好geo优化