最常用的三維繪圖有三維曲線圖、三維網絡圖和三維曲面圖這3中基本類型,相應的MATLAB指令分別為plot3、mesh和surf。
方法/步驟
曲線圖繪製:plot3指令使用示例
在命令窗口中輸入以下代碼:
>> theta = 0: 0.01*pi: 2*pi;
>> x = sin(theta);
>> y = cos(theta);
>> z = cos(4*theta);
>> figure
運行結果如下:
>> theta = 0: 0.02*pi: 2*pi;
>> x = sin(theta);
>> y = cos(theta);
>> z = cos(4*theta);
>> plot3(x,y,z,'rd','MarkerSize',10,'LineWidth',2)
網格圖繪製
繪製三維網格圖的過程如下:
(1)確定自變量x和y的取值範圍間隔如下:
x = x1:dx:x2,y = y1:dy:y2
(2)構成xoy平面上的自變量採樣“格點”矩陣:
法1:利用“格點”矩陣原理生成矩陣。
x = x1:dx:x2;y = y1:dy:y2;
X = ones(size(y))*x;
Y = y*ones(size(x));
法2:利用meshgrid指令生成“格點”矩陣。
x = x1:dx:x2;y = y1:dy:y2;
[X,Y] = meshgrid(x,y);
(3)計算在自變量採樣“格點”上的函數值:Z=f(X,Y)。
代碼如下:
>> X = -10:0.1:10;Y = -10:0.1:10;
>> [X,Y] = meshgrid(X,Y);
>> Z = -X.^2 - Y.^2 + 200;
>> mesh(X,Y,Z)
曲面圖的繪製:surf指令與mesh指令對比
代碼如下:
k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
figure(1)
surf(z);
figure(2)
surf(x,y,z);
axis equal
figure(3)
surf(x,y,z,c);
colormap([1 1 0; 0 1 1])
axis equal
運行結果如下:
光照模型:帶光照的曲面圖
代碼如下:
>> [X,Y,Z] = peaks(30);
>> subplot(1,2,1);
>> surf(X,Y,Z),colormap(copper),title('Default Lighting'),shading interp
>> subplot(1,2,2);surfl(X,Y,Z,[-90 30],[0.55 0.6 2 10]),shading interp
運行結果如下圖所示:
繪製等值線圖:contour指令使用實例
代碼如下:
>> [X,Y,Z] = peaks(30);
>> figure;
>> subplot(2,2,1);contour(X,Y,Z);axis square
>> subplot(2,2,2);contour(X,Y,Z,10);axis square
>> subplot(2,2,3);contour(X,Y,Z,-10:1:10);axis square
>> subplot(2,2,4);contour(X,Y,Z,'');axis square
運行結果如下:
用顏色描述第四維:
代碼如下:
>> [X,Y,Z] = peaks(30);
>> R = sqrt(X.^2+Y.^2);
>> subplot(1,2,1);surf(X,Y,Z,Z);
>> axis tight
>> subplot(1,2,2);surf(X,Y,Z,R);
>> axis tight
運行結果如下: