几何算法库

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

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
相关推荐
代码游侠16 小时前
C语言核心概念复习(三)
开发语言·数据结构·c++·笔记·学习·算法
池央16 小时前
贪心算法-递增的三页子序列
算法·贪心算法
lrh12280016 小时前
详解K近邻(KNN)算法:原理、实现与优化
算法·机器学习
程途拾光15816 小时前
算法公平性:消除偏见与歧视的技术探索
大数据·人工智能·算法
秋风战士16 小时前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
沧澜sincerely16 小时前
蓝桥杯算法练习
算法·职场和发展·蓝桥杯
一起养小猫16 小时前
Flutter for OpenHarmony 进阶:手势识别与碰撞检测算法深度解析
算法·flutter·harmonyos
Herbert_hwt16 小时前
数据结构与算法绪论:为何学、学什么、如何避坑
c语言·数据结构·算法
XX風16 小时前
1-3-kernel PCA
算法
今儿敲了吗16 小时前
11| 子集
c++·笔记·算法