Matlab 應用之繪制三維圖形(基礎篇)

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],要求繪制三維曲線圖與三維火柴桿圖。

分析:可以看到,函數中,xy均為z的單值函數,所以用plot3stem3就可以解決

代碼:

 

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')                        %繪制三維火柴桿圖

 

結果:

blob.png 

1. 例一結果圖(三維曲線圖)

blob.png

圖2. 例一結果圖(三維火柴桿圖)


例二:

繪制二元方程blob.png所表示的三維曲面,其中xy的范圍為[-8,8],要求繪制三維曲面圖,三維網線圖,三維等高線圖。

 

分析:可以看出,函數中,z為與xy都相關的函數,所以此處需要用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,繪制等高曲線

 

結果:


blob.png

3. 例二結果圖



    希望大家能認真體會以上兩個例子,現在給出一個思考題,如果能畫出來的話,說明你已經掌握了這一技能,答案我將在下一期的帖子給出。


思考題:

給出一組數據,如下表所示,做出其三維曲面圖

blob.png

4.思考題數據截圖


blob.png

5.思考題答案圖

注:本貼提及的程序及思考題數據位置為:http://www.yqgqt.org.cn/content/doc/280286



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

5
16
3