【发布时间】:2011-11-30 06:39:39
【问题描述】:
我希望在我的画布上绘制一个矩形,但要拉伸起点。但是我如何擦除在此过程中绘制的先前矩形。我的意思是如果我的背景颜色是红色并且我想在它上面画一个黑色矩形。在擦除橡皮筋期间绘制的中间矩形时,我希望保留背景。
【问题讨论】:
标签: javascript html canvas
我希望在我的画布上绘制一个矩形,但要拉伸起点。但是我如何擦除在此过程中绘制的先前矩形。我的意思是如果我的背景颜色是红色并且我想在它上面画一个黑色矩形。在擦除橡皮筋期间绘制的中间矩形时,我希望保留背景。
【问题讨论】:
标签: javascript html canvas
这个问题有点难以理解,但我假设您想要使用getImageData 和putImageData 执行以下操作:
// save the entire canvas (in this example, its 500 x 500) to be restored later
image = context.getImageData(0, 0, 500, 500);
function draw() {
context.clearRect(0, 0, canvas.width, canvas.height); // clear entire canvas
context.putImageData(image, 0, 0); // restore entire canvas saved previously
/** Now, draw other stuff on top of the canvas **/
}
【讨论】:
drawImage,而不是putImageData,看看哪个更快。
您需要重新绘制黑色矩形之前占据的背景部分。重绘整个背景可能更简单。
【讨论】:
您只需跟踪要绘制的每一个对象,并在每一帧重绘每一个对象。
您可以稍微优化该过程,但您必须跟踪绘制的每件东西,以便重新绘制。
【讨论】: