MATLAB动画绘制

您所在的位置:网站首页 matlab卫星运动轨迹绘图 MATLAB动画绘制

MATLAB动画绘制

2023-12-27 11:39| 来源: 网络整理| 查看: 265

Matlab动画制作

Matlab的动画制作:

质点动画:最简单的动画产生方式,产生一个顺着曲线轨迹运动的质点来操作。

电影动画:首先保存一系列的图形,然后按照一定的顺序像电影一样的播放。

程序动画:在图形窗口中按照一定的算法连续擦除和重绘图形对象。

质点动画

使用comet、comet3函数来产生质点动画,其步骤如下:

step1:求解出质点完整的运动轨迹坐标x,y和z。

step2:使用comet或者comet3直接绘制动点。

函数comet和comet3调用格式

调用格式

说明

comet(y)

显示质点绕着向量y的动画轨迹(二维)

comet(x, y)

显示质点绕着向量y与x的动画轨迹(二维)

comet(x, y, p)

同上面的效果,但额外地定义轨迹尾巴线的长度p*length(y),

其中p是介于0和1之间的数,默认为0.1

实例:

% 最简单的动画形式,使用comet、comet3函数 % 产生一个顺着曲线轨迹运动的质点 % step1:求解出质点完整的运动轨迹坐标x,y和z % step2:使用comet或者comet3直接绘制动点 % 使用函数comet建立质点绕圆运动的动画 clf; clear; %{ linspace是Matlab中的一个指令,用于产生指定范围内的指定数量点数,相邻数据跨度相同,并返回一个行向量。 调用方法:linspace(x1,x2,N) 功 能:用于产生x1,x2之间的N点行矢量,相邻数据跨度相同。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。 举例如下:X = linspace(5, 100, 20) % 产生从5到100范围内的20个数据,相邻数据跨度相同 X = 5 10 15 20 25 30 35 40 45 5055 60 65 70 75 80 85 90 95 100 ps:这和X = [5 : 5 : 100]的效果是一样的。 %} % 圆周运动 t = linspace(0, 2*pi, 10000); x = cos(t); y = sin(t); % 以便比较comet是否跟着轨迹走 % plot(x, y); axis([-1, 1 -1, 1]); axis square; hold on; grid on; % comet(x, y, p); p:定义轨迹尾巴的长度,范围在0-1之间,默认时为0.1 comet(x, y, 0.03);

% 平抛运动 clf; clear; grid on; vx = 40; dt = linspace(0,10,1000); dx = vx*dt; dy = -9.8*dt.^2/2; comet(dx, dy);

% 导弹发射 clf; clear; grid on; vx = 100*cos(1/4*pi); vy = 100*sin(1/4*pi); t = 0:0.01:15; dx = vx*t; dy = vy*t-9.8*t.^2/2; comet(dx, dy);

% 使用函数comet3建立质点绕圆运动的动画 figure(); grid on; tt = 0:pi/500:10*pi; plot3(sin(t),cos(t),t); comet3(sin(tt), cos(tt), tt, 0.5);

电影动画

        1、调用moviein函数对内存进行初始化,创建一个足够大的矩阵,使之能够容纳基于当前坐标大小的一系列指定的图形(此处称为帧)。

        2、调用getframe函数生成每个帧。该函数返回一个列矢量,利用这个矢量,就可以创建一个电影动画矩阵。

        3、调用movie函数按照指定的速度进行指定次数播放该电影动画。例如:movie(M, n)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3