【转】matlab 如何画动态图(绘图与旋转视图) 您所在的位置:网站首页 如何旋转动图 【转】matlab 如何画动态图(绘图与旋转视图)

【转】matlab 如何画动态图(绘图与旋转视图)

2024-07-10 00:54| 来源: 网络整理| 查看: 265

https://blog.csdn.net/songjs19931206/article/details/43482415/

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

2015年02月04日 10:04:22 宋军帅 阅读数:23758

绘图

 

效果图:

在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

 

 

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

 

旋转视图

效果图:

 

运行一下代码之后,图形会随着视角进行旋转:主要通过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('旋转抛物面')


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有