MATLAB动画绘制

Matlab动画制作

Matlab的动画制作:

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

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

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


质点动画

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

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

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

函数cometcomet3调用格式

调用格式

说明

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)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值