Matlab三维绘图

绘制曲线图

clear;clc
t = linspace(0,2.*pi,100);
x = 8.*cos(t);
y = 4.*sin(t).*sqrt(2);
z = -4.*sin(t).*sqrt(2);
plot3(x,y,z)
grid on;

 运行结果如图所示

 绘制网格图

clear;clc
x = -2:0.1:2;
y = -4:0.1:4;
%网格数据生成
[X,Y] = meshgrid(x,y)
Z = X.*exp(-X.^2-Y.^2);
%网格图生成
figure(1)
mesh(X,Y,Z)
colormap(jet)%改变图形配色

在绘制3维曲面图时,要提前生成对应的网格数据,在这里我们使用meshgrid(x,y)函数快速生成网格数据。在三维图上每一个X,Y都有一个对应的Z数据。

在这里观察工作区就会发现,Z的数据是81X41个网格数据,而且X的数据是重复的:

 而Z的数据就是对应每个XY的,见下图:

程序执行结果见下图:

 

 绘制曲线面

在上段网格数据XY的基础上,我们绘制曲面图:

figure(2)
surf(X,Y,Z)

运行结果如下:

对图形进行插值美化:

shading interp%插值丰富3维图

 

 三维绘图分区

使用subplot()即可

close all;
subplot(2,2,1)
mesh(X,Y,Z)
subplot(2,2,2)
surf(X,Y,Z)
subplot(2,1,2)
plot3(X,Y,Z)
grid on;

绘制等直线图与光照图

close all;
subplot(2,3,1)
contour(X,Y,Z)%2d等直线图
title('2d等直线图')
subplot(2,3,2)
contour3(X,Y,Z)%3d等直线图
title('3d等直线图')
subplot(2,3,3)
meshc(X,Y,Z)
title('meshc(X,Y,Z)')
subplot(2,2,3)
surfc(X,Y,Z)
title('surfc(X,Y,Z)')
subplot(2,2,4)
surfl(X,Y,Z)%光照图
title('surfl(X,Y,Z)')

 

绘制球与柱体

 绘制球的网格数据函数:sphere(30),参数切片圆的点数,越多越像圆

axis equal:使XYZ轴间距相等 

绘制柱形图函数:cylinder(2+cos(t),30),第一个参数为向量,第二个参数切片圆的点数,越多越像圆

close all;
[X,Y,Z] = sphere(30)%参数切片圆的点数,越多越像圆
subplot(1,3,1)
surf((X-2),10.*Y,Z)
title('椭球')
subplot(1,3,2)
surf(X,Y,Z)
title('球')
subplot(1,3,3)
t = linspace(0,2.*pi,100);
cylinder(2+cos(t),30)%第一个参数为向量,第二个参数切片圆的点数,越多越像圆
title('柱形图')

 将3个图绘制在一张图中:

[X,Y,Z] = sphere(30);
surf((X-2),4.*Y,2.*Z)
hold on
surf(X,Y,Z)
cylinder(2+cos(t),30)
axis equal
xlabel('X')
ylabel('Y')
zlabel('Z')

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值