三流Mayavi操作-Mayav-2.1.0.7-對比

秉着邊學邊寫邊折騰的原則,開始粗糙的工作。真正掌握還是得講解給別人聽。 先給出網課
https://www.icourse163.org/course/BIT-1001871001
Mayavi官方
http://docs.enthought.com/mayavi/mayavi/genindex.html
(有時候這網站會裝死,一般過幾個小時就會活過來)
我發現了,光是三流操作還不夠,還得加上四流翻譯。

這篇文章放在來第二章繪圖函數的倒數第二篇,最後一篇留出來,考慮到一些補充。
這個文章是一個總結,因爲很明顯利用參數的不同來說圖像繪製並不合理,只是一定程度上地節約篇幅,僅此而已。
不合理體現在,分類方式,比如imshow居然和plot3d放在一起。

1.重新來分類

一種比較合理的分類就是按照維度進行分類。
http://docs.enthought.com/mayavi/mayavi/mlab_3d_plotting_functions.html
按維度:

1d:

plot3d(),points3d()

2d:

imshow(),surf(),contour_surf(),mesh(),barchart(),triangular_mesh()

3d

contour3d(),quiver3d(),flow(),volume_slice()

2.Mayavi的管線配置很重要

很多時候繪圖的參數都可以GUI設置,我不能說直接設置不好。但是每次畫一下都要去GUI一下我是挺不樂意的。
好在Mayavi裏面有腳本錄製,這個我沒說,原因是,腳本錄製採用的是管線的寫法,超出了第二章的範疇。所以。不多說。

3.數據源同樣重要

首先要對Data representation數據表示法很熟悉,這個文,我翻了一半。這個文檔相當重要。
第二章也沒過多涉及數據源的問題,我始終停留在Module層級,數據源層級屬於SceneModule的父層級,沒有過多涉及。
我們目前繪製的都是直接從numpy生成的乾淨的數據,直接的數據。而真實情況是,我們往往是從外部讀取數據,這裏不涉及。後面會慢慢寫過來,這是一個很長的過程,需要不少的時間。我也是邊學邊寫,邊補充。

-1.寫在最後

然後呢,如果系統地看完或者整理過,應該有這樣的認識:

0.圖像的觀察方式,很多都不是用單一的手段,往往是多種繪製有機結合。所以熟悉各種繪製就變得很重要,比如mesh繪製了網格面,爲了觀察值域範圍往往要補充outline,比如volume_slice本身就不是主要的觀察手段,而是輔助觀察。
1.繪製函數都是被封裝好的,如果要繪圖儘可能使用接口。有些高級繪製僅僅依靠繪製函數是不夠的,如果要繪製更好的效果,需自己一層一層鋪設管線來處理更多的細節。
2.從數據到圖,這中間經歷了很多過程的,而Mayavi做的工作是可視化,也就是將最後的圖像結果呈現出來。
3.如果注意到Mayavi的內部,對於這句話應該是有更多的理解的——The tvtk module (also called TVTK) provides a traits enabled version of VTK. TVTK objects wrap around VTK objects but additionally support traits, and provide a convenient Pythonic API. TVTK is implemented mostly in pure Python (except for a small extension module). Here is a list of current features.
TVTK是純Python編寫,那麼Mayavi的GUI做得算是相當好了。那麼我就不得不思考Mayavi本身是怎麼寫出來的,界面確實做得很好~這裏用的是TraitsUI而非wxPython和Pyqt在文檔裏面提到過,不過也可以適當考慮一下。

最最後面,暫時沒人注意,也沒人看,這無所謂的。我也是邊學邊寫,養成輸出的習慣。偶爾覺得,寫寫也挺好玩的。
——做做翻譯,畫畫圖,調調代碼,一天就過去了。
就這樣。

這個想起了又補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章