Python を使用してメッシュを作成したい 3 次元ポイントのデータセットがあります。私が見たすべてのソフトウェアでは、エッジを提供する必要があります。3D の一連の点を入力として取り、一連の三角形メッシュを出力する Python のプログラムはありますか? できればメッシュを均一にしてほしいです。
ありがとう - エリ。
Python を使用してメッシュを作成したい 3 次元ポイントのデータセットがあります。私が見たすべてのソフトウェアでは、エッジを提供する必要があります。3D の一連の点を入力として取り、一連の三角形メッシュを出力する Python のプログラムはありますか? できればメッシュを均一にしてほしいです。
ありがとう - エリ。
ポイントがサーフェスを表している場合は、@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' ) ;
そこからsimplices
、オブジェクトの属性を介して三角形または単純化にアクセスしtri
ます。たとえば、tri.simplices[0]
は最初の三角形またはシンプレックスを参照し、3 つの整数の配列、たとえば を返します[ 10, 0, 5 ]
。これは、最初のシンプレックスを構成する点が、配列 のインデックス 10、0、および 5 にあることを意味しdata
ます。
Python で既存の Java ライブラリをどれだけ簡単に使用できるかはわかりませんが、Jzy3dはポイントからメッシュを生成するのに役立つ場合があります。通常のグリッド上にあるポイントに基づく入力用の直交テッセレータと、未知のグリッド用の delaunay テッセレータがあります。ポイント構造。(免責事項:私は著者です)