1、Geos
GEOS 是一个用于计算几何的C/C++库,专注于地理信息系统(GIS) 软件中使用的算法。它实现了OGC 简单特征几何模型,并提供了该标准以及许多其他标准中的所有空间功能。GEOS 是PostGIS、QGIS、GDAL和Shapely的核心依赖项。 它旨在包含C ++中JTS的完整功能。 这包括用于SQL空间谓词功能和空间运算符的所有OpenGIS简单功能,以及特定的JTS增强功能。 GEOS为许多其他项目和产品提供空间功能。GEOS是一个集合形状的拓扑关系操作实用库,简单得说,就是判断两个几何形状之间关系和对两个几何形状进行操作以形成新的几何形状的库。GEOS (Geometry Engine – Open Source) Java Topology Suite (JTS) 的 C++ 实现。它的目标是在C++ 下面,完全实现 JTS 的功能。GEOS的前身是JTS,JTS提供了全功能的,强大的空间操作和空间判断。后来PostGIS缺少一套完整的空间查询操作,于是就将JTS移植成为C++版本,正式命名为GEOS。GEOS为开源库,它包括了完整的空间查询和一大部分空间操作,是从事图形操作和GIS行业开发人员经常接触的开发库。较为知名的使用GEOS的GIS软件就有QGIS,QGIS使用GEOS的c接口,c接口函数名称不会经常发生更改,具有更多的稳定性。
2、CGAL
CGAL的全称就是Computational Geometry Algorithms Library,参考网站就是:http://www.cgal.org ,计算几何算法库,设计目标是以C++库的形式,提供方便,高效,可靠的几何算法。CGAL可用于各种需要几何计算的领域,如计算机图形学,科学可视化,计算机辅助设计和建模,地理信息系统,分子生物学,医学成像,机器人运动规划,网格生成,数值方法等等。提供计算几何相关的数据结构和算法,诸如三角剖分(2D约束三角剖分及二维和三维Delaunay三角剖分),Voronoi图(二维和三维的点,2D加权Voronoi图,分割Voronoi图等),多边形(布尔操作,偏置),多面体(布尔运算),曲线整理及其应用,网格生成(二维Delaunay网格生成和三维表面和体积网格生成等),几何处理(表面网格简化,细分和参数化等),凸壳算法(2D,3D和dD),搜索结构(近邻搜索,kd树等),插值,形状分析,拟合,距离等。
The Computational Geometry Algorithms Library
3、LEDA
LEDA的全称就是Library of Efficient Data types and Algorithms,参考网站就是:AlgoSol - Home,LEDA的是用C++语言写的关于数据类型和算法经典的开源库。
4、Wykobi
Wykobi就是指的是Wykobi Computational Geometry Library ,参考网站就是:http://www.wykobi.com ,这个用C++语言实现的开源库,功能比较全。
5、VTK
可以利用python接口做可视化。
官网:VTK - The Visualization Toolkit
github:GitHub - Kitware/VTK: Mirror of Visualization Toolkit repository
6、libigl
A simple C++ geometry processing library
官网:libigl
github:GitHub - libigl/libigl: Simple C++ geometry processing library.
7、openmesh
官网:http://www.openmesh.org/
github:https://github.com/heyaaron/openmesher
OpenMesh是一种用于表示和操作多边形网格的通用且高效的数据结构。有关OpenMesh及其特性的更多信息,请查看介绍页面。OpenMesh是一个c++库。还提供了Python绑定。在OpenMesh的基础上,我们开发了一个灵活的几何建模和处理框架OpenFlipper。
8、trimesh
官网:https://trimsh.org/
github:https://github.com/mikedh/trimesh
9、meshlab
官网:MeshLab
github:GitHub - cnr-isti-vclab/meshlab: The open source mesh processing system