python - 在Python中构建3维数据表面数据的三角网格

标签 python 3d mesh triangular

我有一个 3 维点的数据集,我想使用 python 为其构建网格。我见过的所有软件都要求你提供优势。 python 中是否有一个程序将 3D 中的一组点作为输入并输出一组三角形网格?如果可能的话,我希望网格划分是均匀的。

谢谢你, - 伊莱。

最佳答案

如果这些点代表一个表面,您可以按照 @wim 的建议使用 Delaunay 三角剖分。

import numpy as np
import scipy.spatial
import pylab

data = np.random.random((12,3))            # arbitrary 3D data set
tri = scipy.spatial.Delaunay( data[:,:2] ) # take the first two dimensions

pylab.triplot( data[:,0], data[:,1], tri.simplices.copy() )
pylab.plot( data[:,0], data[:,1], 'ro' ) ;

Delaunay triangulation

从那里,可以通过 tri 对象的 simplices 属性访问三角形或单纯形。例如,tri.simplices[0] 指的是第一个三角形或单纯形,它返回一个由三个整数组成的数组,例如[ 10, 0, 5 ] 。这意味着构成第一个单纯形的点可在数组 data 中的索引 10、0 和 5 处找到。

关于python - 在Python中构建3维数据表面数据的三角网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422895/

相关文章:

python - 从数组输出中删除单引号

python - 如何使用 twinx 并仍然获得方形图

python - 以编程方式在 Accordion 中切换 "tab"

c++ - 哪些库用于 3d 表面网格

python - 如何在virtualenv中强制安装包?

math - 三维空间中向量的极坐标

java - 将 xyz 数据转换为可由站点访问者旋转和缩放的 3D 图像

unity3d - 捷运 | HoloLens - 获取对象内网格的所有三角形

data-structures - 表面网格三角形: query space within

algorithm - 如何平滑 3D 体素世界的 block ?