【问题标题】:Html5 canvas line draw transitionHtml5画布线画过渡
【发布时间】:2015-03-24 10:57:42
【问题描述】:

这里有画布,可以在画布上画线……每 300 毫秒画一条线,但对眼睛来说太难了……

链接演示:http://jsbin.com/fabalo

代码:

var test = [{"X":300,"Y":200}];
var set_time;
var m = 0;
var add_array = function(){
  ctx.clearRect ( 0 , 0 , canvas.width, canvas.height );
    if(m < pts.length){
       var q = pts[m].X;
       var e = pts[m].Y;
       console.log(test);
       test.push({"X":q,"Y":e});
       mimicSvg(test,1);

       m++;
       set_time = setTimeout(add_array,300);//it call itself again and again until m is more than the length of the array'
    }else{
       clearTimeout(set_time);
    }
};

set_time = setTimeout(add_array,300);

有什么方法可以使动画过渡顺利进行吗? 有什么方法可以让这个动画更好?如何进行过渡?

【问题讨论】:

    标签: html animation canvas polyline smoothing


    【解决方案1】:

    canvas 中没有这样的功能。您必须自己找到一种方法来制作缓动/过渡/补间功能。

    首先,您需要确定更短的间隔,并计算出将有多少“中间”步骤,然后将这些步骤用于过渡。

    将其视为在主数组的每两个步骤之间创建一个时间 x 步数组。

    【讨论】:

    • 虽然“补间”通常有助于减少动画的抖动,但在这种情况下,我看不到应用您的答案的方法,因为每个额外的线段都会导致彻底(非增量)重新定位在之前的所有部分中。一个想法:与其一次性捕捉一条新的线段,不如插入该线段并逐步“增长”该线段。也许这种转变会不那么刺耳。我今晚太累了,不能试一试——也许你可以试一试?
    • 我想我们说的是同一件事——在 A 点到 B 点之间以 X 步进行插值。
    猜你喜欢
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多