loading请求处理中...

一段简单的小动画代码的写作方法

2021-12-01 20:18:01 阅读 11764次 标签: 视频 作者: 蓝blue
    这段简单的小动画代码写法是关于圆球沿“8”型空间曲线运动。这段空间曲线运动多出现在数学里,当然也可以用一段代码解决。

一段简单的小动画代码的写作方法
一、思路
以动画来显示除了可以让动画更生动之外,还可以立即比较与原始图形的差异,深入强调绘图的重点所在。
擦除方式产生动画是通过MATLAB句柄式图形搭配drawnow来实现的,原理是以对象的更新来产生新图,进而覆盖旧图,是图形对象不断发生变化,以实现动画的效果,因此曲线、坐标轴等图形对象都可以借助xdate、ydate、zdate等属性的变化,搭配drawnow函数来控制图形对象产生动画的效果,不过对于比较复杂的动画在实行上可能比较难以达到。


使用此种方式长产生动画必须先了解擦除模式(EraseMode)的相关属性。EraseMode实行主要使用一控制与擦出线条对象,因此我们必须了解自己的动画适合哪一种擦除模式,是动画能够呈现最佳的显示方式。以曲线为例,每条曲线都有下列属性:


·xdata向量:表示曲线的X坐标数据;
·ydata向量:表示曲线的Y坐标数据;
·EraseMode:输入参数为一个字符串,用于决定擦出就旧曲线的处理方式;
·linspace(a,b,n):产生a和b间等距离的n点行向量;
·LineWidth:定义线宽度;
·MarkerEdgeColor:定义记号边缘颜色;
·MarkerFaceColor:对于封闭的记号,以颜色涂满;
·MarkerSize:定义Marker的大小;
·Axis auto:根据x,y,z的范围自动确定坐标的显示范围;
·line(…):返回每一条线的线对象对应的句柄值向量。
二、程序
x=linspace(0,2*pi,10000);
y=10+10*sin(4*x);
z=2*sin(2*x);
h=plot3(x,y,z);
n=length(x)
line_handle=line('LineStyle','o','LineWidth',5,'MarkerSize',10,'EraseMode','xor','MarkerEdgeColor','b','MarkerFaceColor','r');
i=1;
while 1
    set(line_handle,'xdata',x(i),'ydata',y(i),'zdata',z(i));
%    axis auto
%    pause(0.001)
    drawnow
    i=i+1;
    if i>n
        i=1;
    end
end
Tag: 代码 源代码

FLASH制作公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论