分類:
- 離散數據圖形繪制
- 函數圖形繪制
- 網格圖形繪制
- 曲面圖形繪制
- 特殊圖形繪制
本文重點介紹matlab五種圖形繪制方法的后三種。
一、網格圖形繪制
以繪制函數z=f(x,y)三維網格圖為例,下面為繪制步驟:
- 確定自變量x和y的取值范圍和取值間隔
x = x1:dx:x2; y = y1:dy:y2;
2.構成xoy平面上的自變量采樣格點矩陣
1) 利用“格點”矩陣生成原理生成矩陣
X = ones(size(y))*x; Y = y*ones(size(x));
2) 利用meshgrid命令生成“格點”矩陣
[X,Y] = meshgrid(x,y);
3.計算在自變量采樣“格點”上的函數值
1) mesh(X,Y,X)
2) mesh(Z)
3) mesh(X,Y,Z,C)
4) mesh(X,Y,Z,’PropertyName’,PropertyValue,...)
實例:繪制的圖像,並作定義域的裁剪。
clear,clf, a = -1;b = 1;c = -15;d = 15;n = 20;eps1 = 0.01; x = linspace(a,b,n);y = linspace(c,d,n); [X,Y] = meshgrid(x,y); % 計算函數值z,並做函數的定義域剪裁 for i = 1:n for j = 1:n if(1-X(i,j))<eps1 || X(i,j) - Y(i,j) < eps1 Z(i,j) = NaN; else Z(i,j) = 1000*sqrt(1 - X(i,j))^-1.*log(X(i,j)-Y(i,j)); end end end % 畫定義域邊界線 zz = -20*ones(1,n);plot3(x,x,zz),grid on,hold on mesh(X,Y,Z) view([-56.5 38]); xlabel('x'),ylabel('y'),zlabel('z'),box on
結果:
二、曲面圖形繪制
曲面圖形的繪制使用surf函數完成,與mesh函數類似。
surf函數使用方式:
1)surf(X,Y,X)
2)surf(Z)
3)surf(X,Y,Z,C)
4)surf(X,Y,Z,’PropertyName’,PropertyValue,...)
實例:繪制圓錐體曲面。
clc,clear,close all X = -10:1:10; Y = -10:1:10; [X,Y] = meshgrid(X,Y); Z = sqrt(X.^2 + Y.^2); surf(X,Y,Z) xlabel('x') ylabel('y') zlabel('z') box on axis tight colormap(lines) shading interp set(gca,'Ydir','reverse'); set(gcf,'color','w');
結果:
三、特殊圖形繪制
Matlab對於不同的三維曲面的繪制提供了不同的畫圖函數,如slice切片函數、quiver3三維箭頭標記函數、sphere等。下面以繪制空間曲線及其運動為例拋磚引玉:
已知空間曲線的方程為:
% 空間曲線的繪制 clc,clear,close all t = 00:0.1:1.5; % 設置運動時間 % 給定曲線方程 x = t.^2; y = (2/3)*t.^3; z = (6/4)*t.^4-(1/3)*t.^3; plot3(x,y,x,'r.-'),hold on,grid on % 計算各方向梯度 Vx = gradient(x); Vy = gradient(y); Vz = gradient(z); % 繪制速度矢量圖 quiver3(x,y,z,Vx,Vy,Vz); xlabel('x') ylabel('y') zlabel('z')
結果:
歡迎探討。