matlab中旋转画图,matlab 如何画动态图(绘图与旋转视图)

绘图

效果图:

0818b9ca8b590ca3270a3433284dd417.png

在matlab中,作图是重要的一部分,那么对于三维的图像,如何将静态的改为动态的呢?

首先,静态图的代码:

t=0:0.1:20;

i=(1:200);

%这里只是画了一个点'*'而已, 因为i取值为1.

h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');

grid on % 网格化:即显示坐标轴中的网格,一般三维坐标都要使用

axis([-2 2 -2 2 0 35]) %指三维的坐标轴分别的长度

title('123');

我们可以看到,里面的i取值为一个区间,相当于是一个一维向量,我们在画图的时候,matlab会自动向后取值,之后画图即为上图所示。

那么如何将之改为动图呢?

代码如下:(主要是该i为普通的变量,对其值的改变使用for循环,同时,每次画完一个点,停留0.01秒。)

t=0:0.1:20;

i=(1:200);

%这里只是画了一个点'*'而已, 因为i取值为1.

h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');

grid on % 网格化:即显示坐标轴中的网格,一般三维坐标都要使用

axis([-2 2 -2 2 0 35]) %指三维的坐标轴分别的长度

title('123');

for i=2:length(t)

%好像是指在h上,接着画点,x、y、z分别为sin(t(i))....等,按顺序排列

set(h,'x',sin(t(i)),'y',cos(t(i)),'z',t(i));

drawnow %现在就画

pause(0.01) %画完当前,停留0.01秒

end

如下为画至一半时的图形:

0818b9ca8b590ca3270a3433284dd417.png

旋转视图

效果图:

0818b9ca8b590ca3270a3433284dd417.png

运行一下代码之后,图形会随着视角进行旋转:主要通过view函数来实现:

%b=0:0.2:2*pi;

%[X,Y]=meshgrid(-6:0.1:6);

Z=(X.^2+Y.^2)./4;

meshc(X,Y,Z);

view(-115,40)

axis([-10 10 -10 10 0 30])

%实现旋转视图,动态观看

i = 1

t = 0:1:30;

for i = 2:length(t)

view(-115-t(i),40);

pause(0.1)

end

xlabel('x轴');ylabel('y轴');zlabel('z轴');

title('旋转抛物面')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值