matlab isosurface

首先召边,更正一個一直以來自己對isosurface的錯誤的理解:

在matlab官方help文檔里面辜伟,對isosurface的定義如下:

Extract isosurface data from volume data

也就是說佳窑,isosurface的功能手负,是在一個三維矩陣數(shù)據(jù)中疾渣,提取出其中數(shù)據(jù)值等于X的那些個數(shù)據(jù)拗馒。

也就是說汛骂,提取出一個等值面來罕模。

它的功能并不是把一個三維數(shù)據(jù)可視化,但它是實(shí)現(xiàn)上述目的的一個重要過程帘瞭。

嗯淑掌,我一定是沒有說清楚的。所以你看不懂也沒有關(guān)系蝶念,我的目的并不是要讓你看懂抛腕。


下面,是一些以讓你看懂為目的東西媒殉。

isosurface的語法

  1. fv = isosurface(X,Y,Z,V,isovalue)
  2. fv = isosurface(V,isovalue)
  3. fvc = isosurface(...,colors)

下面分別詳解如下:

  1. 就像之前講streamslice的文章一樣担敌,isosurface中包含的X,Y,Z,是要經(jīng)過對三維矩陣V的meshgrid操作后產(chǎn)生的廷蓉。而isovalue則是所要從V中提取的數(shù)據(jù)值全封。
    注意,等號左邊的句柄fv代表了matlab中的一個結(jié)構(gòu)體(struct)桃犬,有關(guān)結(jié)構(gòu)體的部分我的理解也不太系統(tǒng)刹悴。簡單地說,就是跟C++中的結(jié)構(gòu)體類似攒暇。
    比如結(jié)構(gòu)體person里面土匀,包含有name,height,weight等等變量,然后這些變量當(dāng)然分別有它們對應(yīng)的值形用。
    所以你輸入name的時候就轧,matlab會告訴你,沒有這個東西尾序,錯誤钓丰。正確的做法是輸入person.name,這樣matlab就認(rèn)識了每币,就會輸出這個人對應(yīng)的名字的值。同理person.heightperson.weight琢歇。
    回到這里的fv以及下面的fvc來兰怠,后面再具體介紹梦鉴。
  2. 其實(shí),不要X,Y,Z也可以揭保,如果你只是想大概看一下你手頭上這個三維的數(shù)組的某個等值面到底長什么樣子的話肥橙,那大可不必meshgrid;但如果你在不同維度里面所劃分的網(wǎng)格精度不同秸侣,又想準(zhǔn)確的知道某個物理量(V)的某個等值面在你模擬盒子的那些位置的話存筏,meshgrid這一部必不可少。
  3. colors是說味榛,你可以控制這個等值面的顏色椭坚。
    因?yàn)楦嗟貢r候,對于一個三維數(shù)組搏色,我們希望看到它的三維圖像的話善茎,一個等值面其實(shí)并沒有什么卵用。但是频轿,一系列的等值面在一張圖中一起畫出來垂涯,就大概可以看清楚整個這個三維數(shù)組的空間結(jié)構(gòu)了。

而這個時候航邢,V這個值耕赘,就是一個一維數(shù)組,代表了一系列的量膳殷;
(這里可能不正確鞠苟,isovalue是否可以是一個數(shù)組,還需親測秽之。在IDL中当娱,isovalue是可以寫成數(shù)組的;matlab里面考榨,竟然會不行跨细??河质?)


而colors這里冀惭,就會給V中每一個值都分配一個顏色,這樣你就能看清楚哪一個面是哪一個值了
注意:想看清楚還需要兩步掀鹅,第一是要生成對應(yīng)的colorbar散休,比較簡單;第二是要調(diào)整每一個面的透明度乐尊,不透明的話你就只能看見最外面那個等值面戚丸,里面是什么樣你還是看不到,這個比較麻煩扔嵌。


所以限府,看到這里我們發(fā)現(xiàn)夺颤,其實(shí)可視化一個三維數(shù)據(jù),isosurface并不是一種最好的方式胁勺,甚至連一種很好的方式都算不上世澜。
但別的你又不會,還能咋辦呢署穗?硬著頭皮畫唄寥裂。

fvc

上面的語法中,寫到了很多fv案疲,fvc這樣的結(jié)構(gòu)體封恰。
其中,f络拌,指的是faces俭驮;v,指的是vertices春贸;c混萝,指的是colors。

除了直接把fvc寫在等號左邊萍恕,生成一個結(jié)構(gòu)體(其中包含它們?nèi)齻€)之外逸嘀,還可以把[f,v,c]寫在等號的左邊,來分別生成三個矩陣允粤。
后者更加方便崭倘。

這些量分別代表了什么含義呢?

?很抱歉类垫,因?yàn)槲也恢雷约簩λ鼈兒x的意會是否正確全面司光,所以沒法斬釘截鐵簡單透徹的言傳上述問題。

我所知道的是悉患,isosurface的功能残家,就是從你的三維數(shù)組中提取出上述三個量,然后通過patch這個功能售躁,分別對這三個量的性質(zhì)進(jìn)行定義坞淮,上色。
比如:

% 生成網(wǎng)格信息
[xx,yy,zz]=meshgrid(cal_gy,cal_gx,cal_gz); 
% 將三維數(shù)組var的一系列值val陪捷,提取到f回窘,v,c中市袖,其中最右邊的xx代表了colors的數(shù)組大小
[faces,verts,colors] = isosurface(xx,yy,zz,var,val,xx); 
% 在patch中啡直,把提取出來的f/v/c賦值給patch里的三個性質(zhì)
patch('Vertices', verts, 'Faces', faces, ... 
     'FaceVertexCData', colors, ... 
     'FaceColor','interp', ... 
     'edgecolor', 'interp');
% 最后加上看的角度(view),坐標(biāo)軸(axis)以及colorbar(jet)即可畫出三維圖。
 view(30,-15);
 axis vis3d;
 colormap jet

具體的圖例如下:


bz_xyz_4.jpg

然而這樣的圖在畫的時候付枫,也有問題——即超級超級耗時間烹玉!
從這里也可以想象驰怎,如果isovalue是一個數(shù)組的話阐滩,那就相當(dāng)于畫了好多幅圖,兩個圖已經(jīng)如此之卡了县忌,更何況多個呢掂榔?

所以這個故事告訴我們,畫圖還是要掌握多種工具才好爸⑿印装获!講真!@鞑穴豫!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逼友,隨后出現(xiàn)的幾起案子精肃,更是在濱河造成了極大的恐慌,老刑警劉巖帜乞,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件司抱,死亡現(xiàn)場離奇詭異,居然都是意外死亡黎烈,警方通過查閱死者的電腦和手機(jī)习柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來照棋,“玉大人资溃,你說我怎么就攤上這事×姨浚” “怎么了溶锭?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梳庆。 經(jīng)常有香客問我暖途,道長,這世上最難降的妖魔是什么膏执? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任驻售,我火速辦了婚禮,結(jié)果婚禮上更米,老公的妹妹穿的比我還像新娘欺栗。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布迟几。 她就那樣靜靜地躺著消请,像睡著了一般。 火紅的嫁衣襯著肌膚如雪类腮。 梳的紋絲不亂的頭發(fā)上臊泰,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音蚜枢,去河邊找鬼缸逃。 笑死,一個胖子當(dāng)著我的面吹牛厂抽,可吹牛的內(nèi)容都是我干的需频。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼筷凤,長吁一口氣:“原來是場噩夢啊……” “哼昭殉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起藐守,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤挪丢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吗伤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吃靠,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年足淆,在試婚紗的時候發(fā)現(xiàn)自己被綠了巢块。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡巧号,死狀恐怖族奢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丹鸿,我是刑警寧澤越走,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站靠欢,受9級特大地震影響廊敌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜门怪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一骡澈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掷空,春花似錦肋殴、人聲如沸囤锉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽官地。三九已至,卻和暖如春烙懦,著一層夾襖步出監(jiān)牢的瞬間驱入,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工修陡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沧侥,地道東北人可霎。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓魄鸦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親癣朗。 傳聞我的和親對象是個殘疾皇子拾因,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,212評論 0 4
  • 1.自助者人助之 小W是個生活作息非常規(guī)律的人,她喜歡瑜伽旷余,每天都堅(jiān)持練習(xí)绢记,喜歡看書畫畫,還不斷學(xué)習(xí)進(jìn)修提升自己正卧。...
    咿呀作語閱讀 162評論 0 0