MATLAB入門教程4
MATLAB入門教程
4.三維網圖的高階處理
1. 消隱處理
例.比較網圖消隱前後的圖形
z=peaks(50);
subplot(2,1,1);
mesh(z);
title('消隱前的網圖')
hidden off
subplot(2,1,2)
mesh(z);
title('消隱後的網圖')
hidden on
colormap([0 0 1])
2. 裁剪處理
利用不定數NaN的特點,可以對網圖進行裁剪處理
例.圖形裁剪處理
P=peaks(30);
subplot(2,1,1);
mesh(P);
title('裁剪前的網圖')
subplot(2,1,2);
P(20:23,9:15)=NaN*ones(4,7); %剪孔
meshz(P) %垂簾網線圖
title('裁剪後的網圖')
colormap([0 0 1]) %藍色網線
注意裁剪時矩陣的對應關係,即大小一定要相同.
3. 三維旋轉體的繪製
為了一些專業使用者可以更方便地繪製出三維旋轉體,MATLAB專門提供了2個函式:柱面函式cylinder和球面函式sphere
(1) 柱面圖
柱面圖繪製由函式cylinder實現.
[X,Y,Z]=cylinder(R,N) 此函式以母線向量R生成單位柱面.母線向量R是在單位高度裡等分刻度上定義的半徑向量.N為旋轉圓周上的分格線的條數.可以用surf(X,Y,Z)來表示此柱面.
[X,Y,Z]=cylinder(R)或[X,Y,Z]=cylinder此形式為預設N=20且R=[1 1]
例.柱面函式演示舉例
x=0:pi/20:pi*3;
r=5+cos(x);
[a,b,c]=cylinder(r,30);
mesh(a,b,c)
例.旋轉柱面圖.r=abs(exp(-0.25*t).*sin(t));
t=0:pi/12:3*pi;
r=abs(exp(-0.25*t).*sin(t));
[X,Y,Z]=cylinder(r,30);
mesh(X,Y,Z)
colormap([1 0 0])
(2).球面圖
球面圖繪製由函式sphere來實現
[X,Y,Z]=sphere(N) 此函式生成3個(N+1)*(N+1)的矩陣,利用函式 surf(X,Y,Z) 可產生單位球面.
[X,Y,Z]=sphere 此形式使用了預設值N=20.
Sphere(N) 只是繪製了球面圖而不返回任何值.
例.繪製地球表面的氣溫分佈示意圖.
[a,b,c]=sphere(40);
t=abs(c);
surf(a,b,c,t);
axis('equal') %此兩句控制座標軸的大小相同.
axis('square')
colormap('hot')