这个例子展示了如何使用animatedline创建一个线越长,在每一帧动画。
创建动画行
的animatedline函数创建一个对象,是专为线动画。最初,动画线对象是空的,所以MATLAB不绘制线
>> N = 30; >> x = linspace(0,20,N); >> y = x - 0.05*x.^2; >> figure >> l = animatedline
l = AnimatedLine with properties: Color: [0 0 0] LineStyle: '-' LineWidth: 0.5000 Marker: 'none' MarkerSize: 6 MarkerFaceColor: 'none' MaximumNumPoints: 1000000 Use GET to show all properties
添加点到动画线
使用增加点增加一个额外的点或向量点动画线。MATLAB添加额外的点到你的动画线使你的线更长
>> addpoints(l,x(1:5),y(1:5)) % 把前面的5点加进去
创建线动画
使用增加点循环内创建一个在线动画。要控制线动画的速度,在添加一个点或一组点后使用暂停。为了防止轴的限制随着每个附加的点的变化而变化,在循环之前设置x和y限制。
>> xlim([0 20]) % 集X的限制 >> ylim([0 5]) % 设定限制 >> for ix = 5:5:N-5 >> addpoints(l,x(ix+1:ix+5),y(ix+1:ix+5)) % 添加下一个5点 >> drawnow % 刷新屏幕上的图像 >> pause(0.2) % 控制动画速度 >> snapnow % 仅限于公开发表的文件 >> end
自定义动画线条外观
animatedline函数接受可选的输入参数指定的线的属性,如颜色、标记和线型。在创造改变动画线的特性,使用点运算符语法object.propertyname。
>> l2 = animatedline('Color','r'); >> addpoints(l2,x(1:5),y(1:5)) >> l2.Marker = '*';
从动画线获得点数
使用功能getpoints返回动画线各点的坐标。
>> [x,y] = getpoints(l2)
x = 0 0.6897 1.3793 2.0690 2.7586 y = 0 0.6659 1.2842 1.8549 2.3781
获取动画线的所有属性
MATLAB中的图形对象有许多属性。要查看动画行对象的所有属性,请使用get命令。
>> get(l2)
AlignVertexCenters: 'off' Annotation: [1x1 matlab.graphics.eventdata.Annotation] BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: '' Children: [0x0 GraphicsPlaceholder] Clipping: 'on' Color: [1 0 0] CreateFcn: '' DeleteFcn: '' DisplayName: '' HandleVisibility: 'on' HitTest: 'on' Interruptible: 'on' LineStyle: '-' LineWidth: 0.5000 Marker: '*' MarkerEdgeColor: 'auto' MarkerFaceColor: 'none' MarkerSize: 6 MaximumNumPoints: 1000000 Parent: [1x1 Axes] PickableParts: 'visible' Selected: 'off' SelectionHighlight: 'on' Tag: '' Type: 'animatedline' UIContextMenu: [0x0 GraphicsPlaceholder] UserData: [] Visible: 'on'
《MATLAB教学(八)简单的线条动画创作》有1个想法
Pingback 引用通告: MATLAB基础教学汇总 | Hannes的站点