python - 三角化 3D 点并另存为 .STL

标签 python delaunay

我有一个 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/

相关文章:

c++ - 如何使用 CGAL 库找出欧几里得最小生成树?

python - 使用 django 作为独立模板引擎时如何使用自定义过滤器

python - 使 OSX 中的 matplotlib 在虚拟环境中工作的最简单方法是什么?

python - Pygame cx_freeze 语法错误

python - 为什么这段代码没有遍历所有 dict 的元素?

Python3 UnicodeDecodeError,无法读取 cp1251 编码的文件

matlab - 求 Delaunay 三角剖分的合成三角形的面积

python - Mayavi 如何使用 xz 数据而不是 xy 数据进行 Delaunay 三角剖分

c++ - 球形空间约束的Delaunay三角剖分

algorithm - 从 Delaunay 三角剖分计算 alpha 形状的边界多边形