MATLAB Function Reference |
從體積(volume)資料抽出(extract)分離平面(isosurface)資料。
Syntax
fv = isosurface(X,Y,Z,V,isovalue) fv = isosurface(V,isovalue) fv = isosurface(X,Y,Z,V), fv = isosurface(X,Y,Z,V) fvc = isosurface(...,colors) fv = isosurface(...,'noshare') fv = isosurface(...,'verbose') [f,v] = isosurface(...) isosurface(...)
Description
fv = isosurface(X,Y,Z,V,isovalue)
在isovalue
所明確說明的分離平面(isosurface)值上從體積資料(volume data)V
裡計算分離平面(isosurface)資料。陣列X
、Y
和Z
為體積V
定義了座標。結構fv
包含了分離平面(isosurface)的表面(face)和頂點(vertices),同時你可以將他直接傳給patch
指令。
fv = isosurface(V,isovalue)
假設陣列X
、Y
和Z
被定義成為[X,Y,Z] = meshgrid(1:n,1:m,1:p)
其中[m,n,p] = size(V)
。
fvc = isosurface(...,colors)
插入(interpolates)陣列colors
到純數(scalar)領域(field)之上,同時結構(struct)fvc
裡的facevertexcdata
領域(field)傳回插入(interpolated)的值。陣列colors
的大小一定要和V
一樣。顏色參數(argument)可使你利用資料(data)來控制分離表面(isosurface)的顏色對應(color mapping),和估算(calculate)分離表面(isosurface)的方式是不同的。(舉例來說:溫度資料重疊(superimposed)在風(wind)流動的分離表面(isosurface))
fv = isosurface(...,'noshare')
不會創造共用(shared)的頂點。這樣子做會更快,但是會製造更多的頂點(vertices)集(set)。
fv = isosurface(...,'verbose')
當計算正在進行中,會印出進展上的訊息到指令視窗(command windows)。
[f,v] = isosurface(...)
以兩個陣列取代結構(struct)的方式傳回表面和頂點。
isosurface(...)
具有無輸出參數(arguments)會使用計算過(computed)的表面(face)和頂點(vertices)創造一個土地(patch)。
Remarks
你可以值結傳遞由isosurface
所創造的結構fv
到patch
指令,但你不可以沒有明確說明屬性(property)的名字就個別的傳遞表面和頂點陣列(f
、v
)到patch
比如:
patch(isosurface(X,Y,Z,V,isovalue)
)
[f,v] = isosurface(X,Y,Z,V,isovalue)
;
patch('Faces',f,'Vertices',v)
Examples
這個範例使用了流向資料集(flow data set),其資料集表示在一個無限大(infinite)水箱(tank)裡頭做潛入(submerged)噴射(jet)的速率(speed)概況(profile)(鍵入help
flow
來獲得更多的訊息)。分離表面在資料值為-3的時候被畫出。在patch
指令下的陳述式為打光(lighting)準備了分離平面:
isonormals
)set
, FaceColor
, EdgeColor
)daspect
, view
)camlight
, lighting
)[x,y,z,v] = flow; p = patch(isosurface(x,y,z,v,-3)); isonormals(x,y,z,v,p)set
(p,'FaceColor','red','EdgeColor','none');daspect
([1 1 1])view
(3); axis tightcamlight
lighting
gouraud
See Also
isonormals
, isocaps
, reducepatch
, reducevolume
, shrinkfaces
, smooth3
, subvolume
isonormals | isstr |