2017-04-23 3 views
1

itertools.product?よりx、y、zの座標の組み合わせをすべて素早く取得できますか?例としては、x:10-310、y:10-310、z:0-65の範囲があります。私はここのようなpolydata内のすべてのcordinatesを配置する必要があります例えばitertools.productへのより迅速な代替方法

EDIT

points1 = vtk.vtkPoints()      
for coords in itertools.product(x1,y1,z1): 
    points1.InsertNextPoint(coords) 
boxPolyData1 = vtk.vtkPolyData() 
boxPolyData1.SetPoints(points1) 
+2

ここで「x、y、z」とは何ですか?あなたが望む結果は何ですか? 3Dアレイ? – Psidom

+0

ステップサイズはここ1ですが、後でそれはまた魔法使いのような異なるステップサイズを働かせなければなりません0.3 – Varlor

答えて

6

使用np.mgrid

import numpy as np 

x, y, z = np.mgrid[10:311, 10:311, 0:66] 

私はあなたのエンドポイントを望んでいたと仮定310および65を含む。

+0

ちょっと、答えに感謝:)しかし、どうやって各座標を得ることができますか?例えば座標(6,250,20)のように? – Varlor

+0

@Varlorその場合、答えに示したアンパックは必要ありません。グリッドを作成するには 'coords = mgrid [...]'とし、 'array([16、260、20])'を返す 'coords [:, 6、250、20]'という結果をインデックスします。しかし、x [6、250、20]、 'y [6,250、20]'、 'z [6,250、20]でも配列を別々にインデックスできます。 – MSeifert

+0

しかし、もし私がすべての座標の組み合わせを取得し、例えば、私の編集のようにvtk.polydataにすべての組み合わせを入れたいと思ったら。 それから私はmgridを反復する必要があります、私wouldnt? – Varlor

関連する問題