我有一个 3D 点云,我想对它们进行三角测量并保存为 .STL 文件。 我使用 Delaunay 进行三角测量:
points = np.array([[x[i], y[i], z[i]] for i in range(len(x))])
tri = Delaunay(points)
但我找不到可以将此对象保存到 .STL 文件中的库。有谁知道好的解决方案吗?
我的 3D 点云的描述:它只是描述一个表面,因此对于每个 (x,y),只有一个 z 值。
也许我可以尝试编写自己的 STL 保护程序,但因此我必须知道 tri.simplices 到底返回了什么:正如我在文档中所读,我得到了形成三角形的点的索引 - 但是 tri .simplices 返回一组 4 索引;我期望 3 而不是(因为三角形有 3 个顶点)?!
编辑: 哦该死,我刚刚弄清楚为什么我得到 4 个索引:它是一个四面体。但是我不想从我的点云中得到四面体——正如我所说我的点云是一个表面,我也只想接收一个“表面”网格,而不是“实体”网格。这怎么可能?
顺便说一句:我刚刚完成了我自己的 STL 编写器的编写,它按预期工作 - 但它只是 ascii 格式...有人知道我如何保存为二进制格式吗?
最佳答案
我发现了这个,如果你纠正了一些错误,它就会起作用: http://www.csar.at/?p=22
关于python - 三角化 3D 点并另存为 .STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262627/