2016-01-20 76 views
1

目前,我嘗試使用Mayavi/Mlab在3D空間中繪製一些類似「泡泡」的形狀。這些氣泡由形狀爲(840,1100,30)的凹凸陣列表示,其中參數表示(x,y,z),並且在任何x,y,z處的值爲1或0.該陣列可以被視爲打開或關閉的體素的集合。我試圖用下面的命令繪製這個數據:使用Mayavi和Mlab繪製「氣泡」

mlab.contour3d(finalVolume) 
mlab.show() 

但是情節出現在2維而不是3維。我查看了文檔,但無法理解。如果任何人能夠提供一些幫助或推動正確的方向,那麼我會非常感激! 謝謝!

+1

原因看起來像是2D,可能是由於縮放。 'mayavi'會將每個體素視爲默認1x1x1。這意味着您的整個陣列的寬度/長度會高30倍。因此,它看起來是2D的,即使它不是。 –

+0

我很確定我犯了一個代碼錯誤,我根本沒有想到這是一個解決方案。但是,你完全正確!謝謝! – bstadt

回答

1

聽起來像你需要使用體繪製來實現這一點。這可以通過以下方式實現:

mlab.pipeline.volume(mlab.pipeline.scalar_field(s), vmin=0, vmax=0.8) 

您需要使用vmin和vmax調整不透明度傳遞函數以製作合適的圖像。體積渲染示例可在以下網址找到:http://docs.enthought.com/mayavi/mayavi/mlab.html