• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab动态画图 (转载)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般来说,matlab制作动画有四种方式。
第一 、以质点运动轨迹的方式显示
使用comet、comet3函数,前者是二维,后者是三维
comet(y)显示质点绕向量y,comet(x,y)显示质点绕向量y与x,comet(x,y,p),其中为轨迹尾巴的长度
以comet(x,y)为例,

显示平抛运动
   vx = 40;
   t = 0:0.001:10;
   x = vx*t;
   y = -9.8*t.^2/2;
   comet(x,y)


显示导弹发射
   vx = 100*cos(1/4*pi);
   vy = 100*sin(1/4*pi);
   t = 0:0.001:15;
   x = vx*t;
   y = vy*t-9.8*t.^2/2;
   comet(x,y)


匀速圆周运动
   sita = 0:0.0001:2*pi;
   r = 10;
   x=r*cos(sita);
   y=r*sin(sita);
   comet(x,y)


comet3与comet的用法相类似,可以在帮助文件里的例子
       t = -10*pi:pi/250:10*pi;
       comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t)

第二、以电影播放的方式显示

保存想要产生动画的图片,存储为一系列各种类型的二维、三维图,再像放电影的方式按次序播放出来。步骤由getframe函数将当前的图片抓取为电影的画面,再由movie函数将动画显示出来。
如:
[x,y] = meshgrid([-1.05:.2:3.75]);
z = x.*exp(-x.^2-y.^2);
axis tight;
set(gca,\'nextplot\',\'replacechildren\');
for j = 1:40
      surf(x*sin(pi*j/100),y*sin(pi*j/100),z*sin(-pi*j/100));
      m(j) = getframe
end
movie(m)
第三、以对象方式显示
设置对象的属性EraseMode,更新对象来产生新图,drawnow()函数进而覆盖旧图,从而使得图形不断发生变化。
例:
x = -pi:pi/30:pi;
h = plot(x,cos(x),\'o\',\'MarkerEdgeColor\',\'k\',\'MarkerFaceColor\',\'r\',\'MarkerSize\',8,\'EraseMode\',\'Xor\')
for j = 1:10000
       y = 1/2*sin(3*x+0.006*j);
       set(h,\'ydata\',y);
       drawnow;
end
第四、以旋转颜色的方式显示



http://blog.sciencenet.cn/blog-598445-502092.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB数值计算与数据分析(3)发布时间:2022-07-18
下一篇:
matlab-1发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap