我寫了一個腳本,允許用戶在html 5 canvas元素上繪製簡單的線條。最終目標是讓此圖形在整個瀏覽器中平鋪並重復。我已經在頁面上獲得了一張克隆的畫布,但我正在努力如何在多個畫布上同時繪製相同的線條。如何使用原始畫布的上下文和數據更新克隆的HTML畫布元素?
我將粘貼下面
var size = 40;
var md = false;
var canvas = document.getElementById('canvas');
canvas.addEventListener('mousedown', down);
canvas.addEventListener('mouseup', toggledraw);
canvas.width = 600;
canvas.height = 600;
canvas.addEventListener('mousemove', move);
function move(evt){
var mousePos = getMousePos(canvas, evt);
var posx = mousePos.x;
var posy = mousePos.y;
draw(canvas, posx, posy);
window.posx;
return mousePos;
};
function down(){
md = true;
}
function toggledraw(){
md = false;
}
function getMousePos(canvas, evt){
var rect = canvas.getBoundingClientRect();
return{
x:evt.clientX - rect.left,
y:evt.clientY - rect.top
};
};
function draw(canvas, posx, posy){
var context = canvas.getContext('2d');
if(md){
context.fillRect(posx, posy, size, size)
}
};
cloneCanvas(canvas, window.posx, window.posy, size);
function cloneCanvas(canvas, posx, posy, size,) {
console.log(posx);
var newCanvas = document.createElement('canvas');
var context = newCanvas.getContext('2d');
newCanvas.className = "newNew";
newCanvas.width = canvas.width;
newCanvas.height = canvas.height;
document.body.appendChild(newCanvas);
//context.fillRect(posx, posy, size, size)
context.drawImage(canvas, posx, posy);
return canvas;
}
是個drawImage是要走的路,只是一個音符,雖然,你會想[清除克隆(https://jsfiddle.net/30efdvz3/4/ ),然後重新繪製更新後的畫布。 – Kaiido
@Kaiido我在重畫之前添加了兩行來清除克隆。 –