菜单

MATLAB教学(八)简单的线条动画创作

2017-12-29 - IT小知识
MATLAB教学(八)简单的线条动画创作

这个例子展示了如何使用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的站点

  • 发表评论

    邮箱地址不会被公开。 必填项已用*标注