有一个代码这行,但我不知道怎么做,我只能做一个2行在这同一时间。
var amount = 0;
var amountt=1;
var startX = 0;
var startY = 0;
var endX = 500;
var endY = 300;
var startXx = 0;
var startYy = 0;
var endXx = 500;
var endYy = -300;
setTimeout(function() {
var interval = setInterval(function() {
amount += 0.01; // change to alter duration
if (amount > 1) {
amount = 1;
clearInterval(interval);
}
ctx.strokeStyle = "black";
ctx.lineWidth=1;
ctx.strokeStyle="#707070";
ctx.moveTo(startX, startY);
// lerp : a + (b - a) * f
ctx.lineTo(startX + (endX - startX) * amount, startY + (endY - startY) * amount);
ctx.stroke();
ctx.strokeStyle = "black";
ctx.lineWidth=1;
ctx.strokeStyle="#707070";
ctx.moveTo(startX, startY);
// lerp : a + (b - a) * f
ctx.lineTo(startXx + (endXx - startXx) * amount, startYy + (endYy - startYy) * amount);
ctx.stroke();
}, 0);
}, 3000);
我不确定这是不是你想要的,但我取了你写的一些东西,并对其进行了解读。
下面是一个jsFiddle,其结果为http://jsfidle.net/gzsjp/
基本上,您有一个间隔,每隔3秒调用一个行的动画。然后,您有一个内部间隔,动画的线条绘制。
var idx = -1;
var startx = [0, 500, 100];
var starty = [0, 0, 300];
var endx = [500, 0, 400];
var endy = [300, 500, 300];
var c=document.getElementById("mycanvas");
var ctx=c.getContext("2d");
var drawLinesInterval = setInterval(function() {
if(idx > startx.length)
clearInterval(drawLinesInterval);
var linepercentage = 0;
idx++; //move onto the next line
var animateInterval = setInterval(function() {
linepercentage += 0.01;
if(linepercentage > 1)
{
clearInterval(animateInterval);
}
ctx.strokeStyle = "black";
ctx.lineWidth = 1;
ctx.strokeStyle = "#707070";
ctx.moveTo(startx[idx], starty[idx]);
var tempxend = 0;
var tempyend = 0;
if(startx[idx] > endx[idx])
tempxend = startx[idx] - ((startx[idx]-endx[idx])*linepercentage);
else
tempxend = startx[idx] + ((endx[idx]-startx[idx])*linepercentage);
if(starty[idx] > endy[idx])
tempyend = starty[idx] - ((starty[idx]-endy[idx])*linepercentage);
else
tempyend = starty[idx] + ((endy[idx]-starty[idx])*linepercentage);
ctx.lineTo(tempxend, tempyend);
ctx.stroke();
}, 10);
}, 3000);
我想在画布上画一段视频。为了实现这一点,我在Javascript中捕获onMouseDown和onMouseUp事件,以获得每个事件的x和y坐标(我需要在画布中设置视频的位置、宽度和高度)。 因此,每次我在画布上绘制视频时,我创建的上一个视频都应该停止,并且必须播放新的视频。两个问题: 1)视频不播放(功能只画第一帧),但他的音频可以 2) 如何停止以前绘制的视频? 演示:http://jsfid
问题内容: 是否有将SVG文件绘制到HTML5画布上的默认方法?GoogleChrome支持将SVG加载为图像(并简单地使用),但是开发者控制台会对此进行警告。 我知道将SVG转换为canvas命令的可能性,但是我希望这不是必需的。我不在乎较旧的浏览器(因此,如果FireFox 4和IE 9支持某些功能,那就足够了)。 问题答案: 编辑2019年12月16日 现在所有主要浏览器都支持Path2D
我有一个画布,你可以在那里画画,我希望用户看到他正在绘制的点的大小。所以我需要在画布上绘制一个10x10像素正方形的自定义光标。当然,我不想在用户移动鼠标的时候在图像上画。 我的想法是: 我可以以某种方式备份原始图像,然后每次都将其涂满 我可以用光标移动a。但如果光标离开画布,我需要转发每一次单击,并使其不可见。 我可以创建一个分层的画布,在我的画布上再加上一个画布,只用于绘制光标。 这样做最好是
我目前正在使用画布开发一个JavaFX-Drawing-Application。在GraphicsContext的帮助下,我使用beginPath()和lineTo()方法绘制线条,但我无法找到实现橡皮擦的适当方法。
问题内容: 我需要知道如何在画布上绘制多边形。不使用jQuery或类似的东西。 问题答案: 使用和创建一个路径:
问题内容: 似乎没有绘制椭圆形形状的本机功能。我也不是在寻找蛋形。 是否可以绘制具有2个贝塞尔曲线的椭圆形?有人遇到过吗? 我的目的是画一些眼睛,实际上我只是使用弧线。提前致谢。 解 因此,scale()更改所有下一个形状的缩放比例。Save()之前保存设置,还原用于还原设置以绘制新形状而无需缩放。 感谢Jani 问题答案: 更新: 缩放方法可能会影响笔触宽度的外观 正确的缩放方法可以保持笔画宽度