MatGeom
基本信息
MatGeom 是一个基于 MATLAB 的几何处理库,支持 2D 和 3D 几何计算。它整合了此前分别发布的 geom2d
和 geom3d
库,极大地提升了功能间的互操作性。同时,已有针对 GNU Octave 语言的移植版本,扩展了其适用范围。
该项目的官方主页为 http://github.com/mattools/matGeom,并提供了用户手册和 HTML 格式的函数文档(基于 m2html 生成)。若用于研究,建议引用相关论文(Legland, D. MatGeom: A toolbox for geometry processing with MATLAB. SoftwareX, 29, 101984, 2025)。
功能与模块组成
MatGeom 包含数百个函数,用于几何图形的创建、操作和显示,主要分为以下模块:
- geom2d:提供欧几里得平面内的通用几何函数,支持点、线、椭圆等基本 2D 几何元素的处理(如拟合、绘制、计算距离等)。
- polygons2d:专注于 2D 多边形和折线(顶点列表表示)的操作,包括平滑、简化、凸包计算、与其他几何元素的交运算等。
- graphs:用于几何图的处理,支持图的创建(如 Delaunay 三角剖分图、k 近邻图)、最短路径计算、图的修剪与合并、显示等。
- geom3d:处理 3D 欧几里得空间中的几何元素,如点、线、平面、球面、3D 多边形等,提供拟合、投影、距离计算、变换等功能。
- meshes3d:用于 3D 多边形网格(三角形网格、四边形网格等)的处理,包括创建基本多面体(如立方体、十二面体)、平滑、细分、裁剪、计算表面积/体积、网格修复等。
仓库结构
主要目录结构如下:
demos/
:包含 2D/3D 几何、图形、网格等的演示脚本。tests/
:各模块的测试代码,包括runAllTests.m
用于执行全量测试。checks/
:包含检查工具,如check_Contents.m
用于验证Contents.m
文件是否包含所有函数。docs/
:文档相关资源,包括图片和用户手册。matGeom/
:核心代码目录,按模块划分(geom2d/
、geom3d/
等),每个模块下有Contents.m
说明该模块的函数。
授权许可
采用简化的 BSD 许可证,允许以源代码或二进制形式再分发和修改,但需保留原始版权声明和许可条件。免责声明指出软件按"原样"提供,不承担直接或间接损失的责任。
应用示例
- 几何拟合:对鸢尾花数据集的点进行直线拟合、计算定向包围盒、为不同类别数据拟合椭圆等。
- 多边形处理:读取多边形数据后,计算边界框、凸包,对多边形进行平滑和简化处理。
- 3D 网格操作:创建足球模型网格并显示,计算网格表面积、体积,对网格进行裁剪或细分等。