4-2 洇弇P炩b

在繪製網狀圖時,MATLAB 會隱藏被遮蓋的網線,若要使被遮蓋的網線亦能呈現出來,可用 hidden off 指令,如下:

Example 1: 04-三維立體繪圖/plotxyz10.m[x,y,z] = peaks; mesh(x,y,z); hidden off axis tight

若再鍵入 hidden on,則恢復原先的設定。此種以 on 或 off 來進行兩段式切換的指令可列表如下。

指令說明
hidden on/off 隱藏(on)或顯示(off)被遮蓋的網線。
zoom on/off 允許(on)或取消(off)以滑鼠點選來放大圖形。
rotate3d on/off 允許(on)或取消(off)以滑鼠點選來旋轉三維圖軸。
axis on/off 顯示(on)或不顯示(off)圖軸。
box on/off 顯示(on)或不顯示(off)圖軸的外框。
hold on/off 在繪製新圖時,保留(on)或消去(off)舊圖。
more on/off 允許(on)或不允許(off)指令視窗的輸出暫停。
echo on/off 允許(on)或不允許(off)指令在檔案內執行時,逐一顯示在視窗。

例如,若要能夠旋轉立體圖形,可已在產生 3D 圖形之後(例如輸入 peaks 之後),再輸入「rotate3d on」,此時您可以壓下滑鼠左鍵來拖曳圖軸,以選取最理想的觀測角度。(你也可以點選圖形視窗上面的 圖示,就可以開始旋轉立體圖形。)

一般而言,三維曲線的觀測角度是由 Azimuth 及 Elevation 來決定,其示意圖如下:

對二維圖形而言,預設值為 Azimuth = 0°,Elevation = 90°;對三維圖形而言,預設值為 Azimuth = -37.5°,Elevation = 30°。若要改變觀測角度,可用 view 指令,如下:

Example 2: 04-三維立體繪圖/plotxyz11.mpeaks; colormap('default'); % 顏色改回預設值 view([0,-30]); z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)

上述 view 指令 將 Azimuth 改為 0°,Elevation 改為 -30°,因此得到一個“由下向上望”的效果。

Hint
當你下達「rotate3d on」之後,在旋轉圖形時,螢幕上也會同步顯示 Azimuth 和 Elevation 的值。因此你可以旋轉在最適合的觀察角度時,記錄下相關的 Azimuth 和 Elevation,並使用 view 指令來直接顯示圖形的最佳觀察方位。

有時候我們希望將曲面圖切掉一部份,以呈現不同的效果,此時可用 NaN 或 nan(Not a Number,即“非數值”)來取代矩陣某一部份的值,MATLAB 一碰到 NaN,就會“鏤空”,如下:

Example 3: 04-三維立體繪圖/plotxyz12.m[X, Y, Z] = peaks; Z(10:20,10:20) = nan; % 將 Z 矩陣的一部分代換為 nan surf(X, Y, Z); axis tight


MATLAB程式設計:入門篇