繁体   English   中英

在Python中为3维数据表面数据构造三角网格

[英]Constructing Triangular Mesh for 3-Dimensional Data Surface Data in Python

我有一个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三角剖分

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

我不知道可以在python中使用现有的Java库有多容易,但是Jzy3d可能会帮助您从点生成网格:有一个基于正交网格的tesselator用于基于规则网格上的点的输入,而delaunay tesselator则用于未知的点结构。 (免责声明:我是作者)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM