Могу ли я нарисовать элемент холста, не разрушая то, что было нарисовано ранее? - PullRequest
1 голос
/ 29 августа 2011

Скажи, что я хочу нарисовать что-то на холсте:

function draw() {

    var canvas = document.getElementById('myCanvas');

    ctx = canvas.getContext('2d');
    ctx.canvas.width = 100;
    ctx.canvas.height = 100;

    ctx.fillStyle = 'red';

    ctx.fillRect(0, 0, 50, 50);

}

Но потом я хочу нарисовать что-то еще на нем,

function drawMore() {

    var canvas = document.getElementById('myCanvas');

    ctx = canvas.getContext('2d');
    ctx.canvas.width = 100;
    ctx.canvas.height = 100;

    ctx.fillStyle = 'blue';

    ctx.fillRect(50, 50, 50, 50);

}

Есть ли я в любом случае?может сделать это, не разрушая ранее нарисованный синий блок, без необходимости явно перерисовывать предыдущий контент (скажем, я на самом деле не знаю, что на нем).

Спасибо!

1 Ответ

3 голосов
/ 29 августа 2011

Удалить эти строки:

ctx.canvas.width = 100;
ctx.canvas.height = 100;

Вам не нужно каждый раз сбрасывать высоту и ширину. Пример

Установка ширины - это трюк для очистки холста.

...