1

mayavi のドキュメントでいくつかのヒントを見つけようとしていますが、成功していません。

複雑なデータの視覚化で、計算された iso_surface の一部を削除したいと思います。たとえば、次のようなコードがあります

field =  mlab.pipeline.gaussian_splatter(data)
iso = mlab.pipeline.iso_surface(field, contours=[0.07])

次のようにして、データが x、y、または z に沿って制限されていることを明示的に説明することで、この iso_surface の一部を削除できます。

field.filter.model_bounds = array([-1.,  1., -1.,  1., -1., 1.])

しかし、任意の有向平面についてこれを説明する方法が見つかりません。たとえば、データを (1,1,1) 方向に制限したいと思います。

これを行う方法はありますか?

4

2 に答える 2

2

を使用data_set_clipper してデータをクリップできます。クリッパーはインタラクティブまたは非インタラクティブです。非対話型バージョンのデモを行います。

fld = mlab.pipeline.scalar_field(data)
clip = mlab.pipeline.data_set_clipper(fld)
clip.widget.widget_mode='ImplicitPlane'
clip.widget.widget.enabled=0
clip.widget.widget.normal=(1,1,1)
clip.widget.widget.origin=(20,20,20) #(0,0,0) is not the centre but the corner
iso = mlab.pipeline.iso_surface(clip, contours=[0.07])

より頻繁にクリップしたい場合は、クリップしたデータを別の場所に配置する必要がありますdata_set_clippe:

clip2=mlab.pipeline.data_set_clipper(clip)

ただし、多くのリソースを使用するため、このアプローチに完全に満足しているわけではありません。誰かがより良い解決策を持っているなら、私はそれを見てうれしいです.

于 2017-01-09T13:38:11.490 に答える