在Matlab中,三維圖形的繪制包括三維曲線,三維網線圖和三維曲面圖。閑話不多說,直接進入正題。首先介紹幾個函數:
1.plot3(x,y,z,…)
其中,x,y,z為維數相同的向量,分別儲存3個坐標值;
2.stem3(x,y,z,…)
常用的三維火柴桿圖
3.mesh(x,y,z,…)
常用的網線圖調用格式;
4.surf(x,y,z,…)
常用的曲面圖調用格式;
5.contour(x,y,z,…)
常用的的等高線調用格式;
6.meshgrid(x,y)
格點矩陣生成函數;
下面以兩個例子,熟悉上述函數的用法
例壹:
繪制x=cos(t),y=sin(t),z=t所表示的曲線,其中t的範圍為[0,10pi],要求繪制三維曲線圖與三維火柴桿圖。
分析:可以看到,函數中,x,y均為z的單值函數,所以用plot3和stem3就可以解決
代碼:
t=0:pi/30:10*pi; %設定t的範圍
plot3(cos(t),sin(t),t,'-b','LineWidth',4); %繪制三維曲線,並且做修飾
grid on %加網格
axis square %命令坐標為方形
figure(2) %新建圖形窗口
stem3(cos(t),sin(t),t,'-.g') %繪制三維火柴桿圖
結果:
圖1. 例壹結果圖(三維曲線圖)
圖2. 例壹結果圖(三維火柴桿圖)
例二:
繪制二元方程所表示的三維曲面,其中x,y的範圍為[-8,8],要求繪制三維曲面圖,三維網線圖,三維等高線圖。
分析:可以看出,函數中,z為與x,y都相關的函數,所以此處需要用meshgrid函數先構成格點矩陣
代碼:
x=-8:0.5:8; % x範圍
y=-8:0.5:8; % y範圍
[xx,yy]=meshgrid(x,y); %構成格點矩陣
c=sqrt(xx.^2+yy.^2)+eps; %計算z的分母,為避免為0,加eps
z=sin(c)./c; %計算z
subplot(2,2,1)
surf(xx,yy,z);title('Surfplot'); %子圖1,繪制三維圖形
subplot(2,2,2)
mesh(xx,yy,z);title('Meshplot'); %子圖2,繪制三維曲面
subplot(2,2,3)
surf(xx,yy,z);title('Surplot with shading interp'); %子圖3,繪制三維曲面,表面為光滑
shading interp;
subplot(2,2,4)
contour(xx,yy,z);title('Meshplot'); %子圖4,繪制等高曲線
結果:
圖 3. 例二結果圖
希望大家能認真體會以上兩個例子,現在給出壹個思考題,如果能畫出來的話,說明妳已經掌握了這壹技能,答案我將在下壹期的帖子給出。
思考題:
給出壹組數據,如下表所示,做出其三維曲面圖
圖 4.思考題數據截圖
圖 5.思考題答案圖