| 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 | ![]() |