目錄
1.三維曲線繪圖命令:plot3
實例——繪制空間直線
實例——繪制三角曲線
2.三維曲線繪圖命令:explot3
3.三維網格命令:mesh
實例——繪制網格面
實例——繪制山峰曲面
實例——繪制函數曲線
1.三維曲線繪圖命令:plot3
plot3命令是二維繪圖plot命令的擴展,使用格式基本相同,只是在參數中多了個第三維的信息。因此,plot(x,ys)和plot3(x,y,z,s)的意義是一樣的。s用來控制曲線的類型,顏色,粗細等。
實例——繪制空間直線
>> x=1:0.1:10 %定義x
y=sin(x); %定義y
z=cos(x);
plot(y,z) %繪制二維圖
plot3(x,y,z) %繪制三維圖
實例——繪制三角曲線
>> close all
x=0:pi/10:2*pi; % 生成從 0 到 2*pi 的數據,步長為 pi/10
y1=sin(x);
y2=cos(x);
plot3(y1,y2,x,'m:p') % 繪制三維曲線,曲線顏色為品紅色(m),使用點標記(:)和虛線樣式(p)
grid on % 開啟網格線,方便查看坐標
2.三維曲線繪圖命令:explot3
調用格式 | 說明 |
explot3(x,y,z) | 在系統默認的區域x∈(-2Π,2Π),y∈(-2Π,2Π)上畫出空間曲線x=x(t),y=y(t) |
zplot3(x,y,z,[a,b] | 繪制上述參數曲線在區域x∈(a,b),y∈(a,b)上的三維網格圖 |
ezplot3(...,'animate') | 產生空間曲線的一個動畫軌跡 |
% 定義參數范圍
t = linspace(0, 10*pi, 1000);% 創建圖形窗口
figure;
axis([-1 1 -1 1 0 10*pi]); % 設置坐標軸范圍
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Animated 3D Curve');% 初始化線條對象
h = plot3(NaN, NaN, NaN, 'b', 'LineWidth', 2);% 循環更新曲線
for i = 1:length(t)% 定義曲線的參數方程x = cos(t(1:i));y = sin(t(1:i));z = t(1:i);% 更新線條對象的數據set(h, 'XData', x, 'YData', y, 'ZData', z);% 刷新圖形drawnow limitrate;
end
3.三維網格命令:mesh
此命令生成的是由X,Y,Z指定的網線面,而不是單根曲線。
實例——繪制網格面
>> close all
x=-4:0.25:4;
y=x;
[X,Y]=meshgrid(x,y); %利用meshgrid函數基于x和y生成二維網格矩陣X和Y。
z=-x.^4+Y.^5;
mesh(Z)
title('網格面')
xlable('x'),ylable('y'),zlable('z')
對于一個三維網格圖,有時用戶不想顯示背后的網格,可以利用hidden命令來實現透明。
hidden on | 將網格設為不透明狀態 |
hidden off | 將網格設為透明狀態 |
hidden | 在on和off之間轉換 |
實例——繪制山峰曲面
用plot3,mesh,meshc和meshz畫此函數曲線圖形
>> mesh(z)
>> close all
t=-4:0.1:4;
[X,Y]=meshgrid(t);
z=peaks(X,Y);
subplot(1,2,1)
mesh(X,Y,Z),hidden on
title('不顯示網格')
subplot(1,2,2)
mesh(X,Y,Z),hidden off
title('顯示網格')
實例——繪制函數曲線
>> close all
x = -5:0.1:5;
% 生成網格矩陣
[X,Y] = meshgrid(x);% 計算 Z 值,處理除零錯誤
R = sqrt(X.^2 + Y.^2);
idx = R == 0; % 找出 R 為 0 的位置
Z = cos(R)./R;
Z(idx) = 1; % 當 R 為 0 時,根據極限值將 Z 設為 1% 創建 2x2 的子圖布局
subplot(2,2,1)
plot3(X,Y,Z)
title('plot3作圖')subplot(2,2,2)
plot3(X,Y,Z)
title('plot3作圖')subplot(2,2,3)
plot3(X,Y,Z)
title('plot3作圖')subplot(2,2,4)
meshz(X,Y,Z) % 這里改為 meshz 函數,與標題匹配
title('meshz作圖')