文档详情

matlab简单小动画.doc

发布:2017-08-02约9.19千字共3页下载文档
文本预览下载声明
圆球沿“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 in i=1; end end 程序效果
显示全部
相似文档