1. 程式人生 > >MATLAB入門教程4

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')