将多个drawImage()添加到一个画布

时间:2016-09-20 14:50:28

标签: javascript html canvas drawimage

我在向一个画布添加多个绘图时遇到问题。我做了一些例子: https://jsfiddle.net/ym5q9ktp/

HTML:

aaa
  bbb
ccc

dd dd
eee
fff

gg
hhhhh

JS:

<canvas id="myCanvas" width="240" height="297" style="border:1px solid #d3d3d3;">
  Your browser does not support the HTML5 canvas tag.
</canvas>

代码没有在js代码的最后一行中绘制第二条红线。如何解决?

1 个答案:

答案 0 :(得分:0)

这个JS将完全绘制红线(或者主要是;取决于你想要它的位置。)(Live Fiddle):

var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");

var draw = function(var1, var2, var3, var4) {
ctx.beginPath();
ctx.moveTo(var1, var2);
ctx.lineTo(var3, var4);
ctx.stroke();
}

draw(0, 0, 200, 50)
draw(0, 10, 200, 60)

draw(15, 56, 200, 150) //这会调用draw()函数绘制每一行

代码中的draw()函数采用您设置的4个参数。

最好以相同的方式绘制黑线,即将其从功能中取出或将其从功能中取出,并为黑线添加另一个draw()调用。

15 =顶部X轴,56 =顶部Y轴,200 =底部X轴,150 =底部Y轴

您还可以为您的函数添加另一个颜色参数:

var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");

var draw = function(var1, var2, var3, var4, color) {
    ctx.beginPath();
    ctx.strokeStyle = color; // Takes the fifth param "color"
    ctx.moveTo(var1, var2);
    ctx.lineTo(var3, var4);
    ctx.stroke();
}

draw(0, 0, 200, 50, "red")
draw(0, 10, 200, 60, "black")