MATLAB Function Reference |
體積的(volumetric)切片(slice)繪圖(plot)。
Syntax
slice(V,sx,sy,sz)
slice(X,Y,Z,V,sx,sy,sz)
slice(V,XI,YI,ZI)
slice(X,Y,Z,V,XI,YI,ZI)
slice(...,'method
')
h = slice(...)
Description
slice
經由體積(volumetric)資料展示正交(orthogonal)切片(slice)平面(planes)
slice(V,sx,sy,sz)
在體積V
中沿著x、y、z三個方向畫出在向量sx
、sy
和sz
上的點的切片。V
是一個m乘n乘p的體積陣列,包含了資料在預設位置X = 1:n,
Y = 1:m,
Z =
1:p
的。每一個向量sx
、sy
和sz
中的元素在x-、y-或z-軸方向上定義了切片平面(slice plane)。
slice(X,Y,Z,V,sx,sy,sz)
畫出體積V
的切片。X
、Y
和Z
都是三維的陣列,同時明確的說明在V
上的座標。X
、Y
和Z
一定要是單調且空間上正交的。(就好比函數meshgrid
所產生的一樣)。每一個點的顏色被三維(3-D)插入(interpolation)體積V
給決定。
slice(V,XI,YI,ZI)
為被XI
、YI
和ZI
所定義的切片畫出在體積V
中的資料。XI
、YI
和ZI
都是矩陣同時也了表面(surface)體積是在表面(surface)的點(points)被估計(evaluated)的。XI
、YI
和ZI
一定要全部大小一樣。
slice(X,Y,Z,V,XI,YI,ZI)
經由體積V
沿著XI
、YI
、ZI
所定義的表面(slice)畫出切片。
slice(...,'
明確說明插入(interpolation)的方法(method)。method
')
'
method
'
is 'linear'
, 'cubic'
, or 'nearest'
.
linear
明確說明三條線(trilinear)的插入(interpolation)(預設)。cubic
明確說明三立方(tricubic)的插入(interpolation)。nearest
明確說明最近的鄰近(neighbor)插入(interpolation)。h = slice(...)
傳回一個表面製圖物件(surface graphics objects)控制(handles)向量。
Remarks
每一點畫上去的顏色是被體積V
的內插(interpolation)給決定。
Examples
over the range -2 x 2, -2 y 2, - 2 z 2:
[x,y,z] =meshgrid
(-2:.2:2,-2:.25:2,-2:.16:2); v = x.*
exp(-x.^2-y.^2-z.^2); xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice
(x,y,z,v,xslice,yslice,zslice) colormap hsv
Slicing At Arbitrary Angles
surf
, linspace
)。rotate
)。XData
、YData
和 ZData
(get
).舉例來說:在第一個範例中這些陳述式藉著一個旋轉(rotated)的平面(plane)切片(slice)體積。擺入這些指令(command)到一個迴圈中(for loop),經由體積沿著z-軸”傳遞”平面(plane)。
for i = -2:.5:2 hsp = surf(linspace(-2,2,20),linspace(-2,2,20),zeros(20)+i); rotate(hsp,[1,-1,1],30) xd = get(hsp,'XData'); yd = get(hsp,'YData'); zd = get(hsp,'ZData'); delete(hsp) slice(x,y,z,v,[-2,2],2,-2) % Draw some volume boundaries hold on slice(x,y,z,v,xd,yd,zd) hold off axis tight view(-5,10) drawnow end
下列的圖片說明正要被傳到體積中,同一個切片(slice)表面(surface)的三個點。
Slicing with a Nonplanar Surface
你可以以任何平面(surface)切片(slice)體積。這個範例探索在之前範例中,藉由傳遞(passing)圓的(sopherical)切片(slice)平面(surface)穿過體積所創造的體積。
[xsp,ysp,zsp] = sphere; slice(x,y,z,v,[-2,2],2,-2) % 畫出一些體積的邊界 for i = -3:.2:3 hsp = surface(xsp+i,ysp,zsp); rotate(hsp,[1 0 0],90) xd = get(hsp,'XData'); yd = get(hsp,'YData'); zd = get(hsp,'ZData'); delete(hsp) hold on hslicer = slice(x,y,z,v,xd,yd,zd); axis tight xlim([-3,3]) view(-10,35) drawnow delete(hslicer) hold off end
See Also
interp3
,meshgrid
size (serial) | smooth3 |