Python 三维网格处理库 Trimesh 核心功能与实战
Trimesh 是一个专注于三维网格(mesh)处理的 Python 库,在计算机图形学、3D 打印及计算机视觉领域非常实用。它不仅能加载多种格式的模型文件,还提供了丰富的几何分析、变换操作及可视化工具。
1. Trimesh 简介
Trimesh 提供了一组强大且易于使用的工具,用于加载、编辑、分析和可视化三维网格数据。它支持 STL、OBJ、PLY、GLTF 等多种格式,特别适合用于 3D 模型的操作、分析和可视化。
2. 安装与环境配置
安装很简单,直接运行以下命令即可:
pip install trimesh
如果需要进行更高级的操作,如渲染或物理模拟,可能还需要安装一些依赖库:
pip install pythreejs vtk
3. 核心功能实战
3.1 加载与导出 3D 模型
Trimesh 支持多种 3D 模型文件格式,包括但不限于 STL (.stl)、OBJ (.obj)、COLLADA (.dae)、3DS (.3ds)、PLY (.ply) 等。
import trimesh
import numpy as np
# 读取 3D 模型文件
mesh = trimesh.load('path_to_your_model.obj')
# 打印模型信息
print(f"顶点数量:{len(mesh.vertices)}")
print(f"面数量:{len(mesh.faces)}")
# 保存模型
mesh.export('path_to_save_model.stl')
3.2 模型变换与操作
模型变换是基础操作,Trimesh 对此支持得很完善,包括平移、旋转和缩放等。
# 平移模型
mesh.apply_translation([1, 0, 0])
# 旋转模型 (使用变换矩阵更稳健)
mesh.apply_transform(trimesh.transformations.rotation_matrix(np.pi / 4, [0, 0, 1]))
# 缩放模型
mesh.apply_scale(2)
# 或者直接使用自定义变换矩阵
rotation_matrix = np.array([
[1, , , ],
[, , -, ],
[, , , ],
[, , , ]
])
mesh.apply_transform(rotation_matrix)

