MATLAB三维绘图(一)三维基础绘图
三维图就是在二维图的基础上多增加了一维,实质上在MATLAB中绘制的都是三维图。简单看一下二维图是怎样变成三维图的,使用plot3函数可以很清楚的看出来。示例:
%% 简单理解三维画图
clear; clc; close all;
x=0:0.1:5*pi;
z1=sin(x);
z2=sin(2.*x);
z3=sin(3.*x);
y1=zeros(size(x));
y3=ones(size(x));
y2=y3./2;
plot3(x,y1,z1,'r',x,y2,z2,'b',x,y3,z3,'g'); % 画出三条不同的直线显示的是三维图像
grid on; % 显示网格
xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis');
效果显示:
1、使用最简单的三维画图函数plot3来认识一下三维图。示例1:弹簧图
%% 螺旋状图(弹簧)
clear; clc; close all;
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t); % 使用plot3进行绘制三维曲线图
grid on; % 显示网格
axis square; % 坐标边框尺度大小相同
效果显示:
示例2:螺旋图:
%% 螺旋状图(盘香)
clear; clc; close all;
turns = 40*pi;
t = linspace(0,turns,4000);
x = cos(t).*(turns-t)./turns;
y = sin(t).*(turns-t)./turns;
z = t./turns;
plot3(x,y,z); % 使用plot3绘制
grid on;
效果显示:
2、通过meshgrid函数生成网格来比较surf函数和mesh函数的区别,了解meshgrid函数的用法
。示例:
%% 比较surf和mesh的区别
clear; clc; close all;
x = -3.5:0.2:3.5; y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); % 获取网格
Z = X.*exp(-X.^2-Y.^2); % 设定Z的范围
subplot(1,2,1);
mesh(X,Y,Z); % 显示绘图的线,但是表格中间没有填充颜色
title('mesh draw');
subplot(1,2,2);
surf(X,Y,Z); % 显示绘图的线,表格中间有填充的颜色
title('surf draw');
效果显示: