Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用画布在一端1秒后使用淡出在点之间绘制移动线_Javascript_Html_Canvas - Fatal编程技术网

Javascript 使用画布在一端1秒后使用淡出在点之间绘制移动线

Javascript 使用画布在一端1秒后使用淡出在点之间绘制移动线,javascript,html,canvas,Javascript,Html,Canvas,我想在点之间画一条线,而它看起来像一条动画移动的线,经过一段时间后从端点开始淡出 我能画出一幅动人的图画,但不能使它褪色。我怎么做?我是画布新手 var canvas = document.getElementById('paper'); var c = canvas.getContext("2d"); var startX = 50; var startY = 50; var endX = 1000; var endY = 1000; var amount = 0; setInterval(

我想在点之间画一条线,而它看起来像一条动画移动的线,经过一段时间后从端点开始淡出

我能画出一幅动人的图画,但不能使它褪色。我怎么做?我是画布新手

var canvas = document.getElementById('paper');
var c = canvas.getContext("2d");

var startX = 50;
var startY = 50;
var endX = 1000;
var endY = 1000;
var amount = 0;
setInterval(function() {
    amount += 0.005; // change to alter duration
    if (amount > 1) amount = 1;
    c.clearRect(0, 0, canvas.width, canvas.height);
    c.strokeStyle = "black";
    c.moveTo(startX, startY);
    // lerp : a  + (b - a) * f
    c.lineTo(startX + (endX - startX) * amount, startY + (endY - startY) * amount);
    c.stroke();
}, 30);

一个非常简单的方法是改变线条的不透明度,就像改变数量一样。您可以像在css中一样使用rgba(红、绿、蓝、阿尔法)颜色空间,只需更改阿尔法值

例如:

var canvas=document.getElementById('paper');
var c=canvas.getContext(“2d”);
var startX=50;
var-startY=50;
var endX=1000;
var endY=1000;
风险价值金额=0;
var不透明度=0;
setInterval(函数(){
金额+=0.005;//更改为更改持续时间
不透明度+=0.005;
如果(金额>1)金额=1;
c、 clearRect(0,0,canvas.width,canvas.height);
c、 strokeStyle=`rgba(0,0,0,${opacity}`;
c、 移动到(startX、startY);
//lerp:a+(b-a)*f
c、 行至(startX+(endX-startX)*金额,startY+(endY-startY)*金额);
c、 笔划();
},30);

不是说此答案也使用模板文本