一段简单的小动画代码的写作方法
这段简单的小动画代码写法是关于圆球沿“8”型空间曲线运动。这段空间曲线运动多出现在数学里,当然也可以用一段代码解决。
一、思路
以动画来显示除了可以让动画更生动之外,还可以立即比较与原始图形的差异,深入强调绘图的重点所在。
擦除方式产生动画是通过MATLAB句柄式图形搭配drawnow来实现的,原理是以对象的更新来产生新图,进而覆盖旧图,是图形对象不断发生变化,以实现动画的效果,因此曲线、坐标轴等图形对象都可以借助xdate、ydate、zdate等属性的变化,搭配drawnow函数来控制图形对象产生动画的效果,不过对于比较复杂的动画在实行上可能比较难以达到。
使用此种方式长产生动画必须先了解擦除模式(EraseMode)的相关属性。EraseMode实行主要使用一控制与擦出线条对象,因此我们必须了解自己的动画适合哪一种擦除模式,是动画能够呈现最佳的显示方式。以曲线为例,每条曲线都有下列属性:
·xdata向量:表示曲线的X坐标数据;
·ydata向量:表示曲线的Y坐标数据;
·EraseMode:输入参数为一个字符串,用于决定擦出就旧曲线的处理方式;
·linspace:产生a和b间等距离的n点行向量;
·LineWidth:定义线宽度;
·MarkerEdgeColor:定义记号边缘颜色;
·MarkerFaceColor:对于封闭的记号,以颜色涂满;
·MarkerSize:定义Marker的大小;
·Axis auto:根据x,y,z的范围自动确定坐标的显示范围;
·line:返回每一条线的线对象对应的句柄值向量。
二、程序
x=linspace;
y=10+10*sin;
z=2*sin;
h=plot3;
n=length
line_handle=line;
i=1;
while 1
set,'ydata',y,'zdata',z);
% axis auto
% pause
drawnow
i=i+1;
if i>n
i=1;
end
end
一、思路
以动画来显示除了可以让动画更生动之外,还可以立即比较与原始图形的差异,深入强调绘图的重点所在。
擦除方式产生动画是通过MATLAB句柄式图形搭配drawnow来实现的,原理是以对象的更新来产生新图,进而覆盖旧图,是图形对象不断发生变化,以实现动画的效果,因此曲线、坐标轴等图形对象都可以借助xdate、ydate、zdate等属性的变化,搭配drawnow函数来控制图形对象产生动画的效果,不过对于比较复杂的动画在实行上可能比较难以达到。
使用此种方式长产生动画必须先了解擦除模式(EraseMode)的相关属性。EraseMode实行主要使用一控制与擦出线条对象,因此我们必须了解自己的动画适合哪一种擦除模式,是动画能够呈现最佳的显示方式。以曲线为例,每条曲线都有下列属性:
·xdata向量:表示曲线的X坐标数据;
·ydata向量:表示曲线的Y坐标数据;
·EraseMode:输入参数为一个字符串,用于决定擦出就旧曲线的处理方式;
·linspace:产生a和b间等距离的n点行向量;
·LineWidth:定义线宽度;
·MarkerEdgeColor:定义记号边缘颜色;
·MarkerFaceColor:对于封闭的记号,以颜色涂满;
·MarkerSize:定义Marker的大小;
·Axis auto:根据x,y,z的范围自动确定坐标的显示范围;
·line:返回每一条线的线对象对应的句柄值向量。
二、程序
x=linspace;
y=10+10*sin;
z=2*sin;
h=plot3;
n=length
line_handle=line;
i=1;
while 1
set,'ydata',y,'zdata',z);
% axis auto
% pause
drawnow
i=i+1;
if i>n
i=1;
end
end