【发布时间】:2020-10-22 20:48:22
【问题描述】:
我制作了一个简单的绘图工具,并希望按照我制作的路径自动化橡皮擦工具。
目前是红色背景,可以使用我自己制作的橡皮擦功能(就像illustrator上的橡皮擦工具一样),也就是说我点击的地方会被擦掉。但我有一个特定的路径,并希望橡皮擦沿着路径擦除。 (比如自动化橡皮擦。)
我正在使用 addEventListener mousemove atm,但我想将其替换为自动化。
window.addEventListener("load", () => {
const canvas = document.querySelector("#canvas");
const c = canvas.getContext("2d");
canvas.height = window.innerHeight - 20;
canvas.width = window.innerWidth;
c.fillStyle = "red";
c.fillRect(0, 0, window.innerWidth, window.innerHeight);
let painting = false;
function startPosition() {
painting = true;
}
function finishedPosition() {
painting = false;
c.beginPath();
}
function draw(e) {
if (!painting) return;
c.lineWidth = 100;
c.lineCap = "round";
c.lineTo(e.clientX, e.clientY);
// c.strokeStyle = "rgba(10,100,0,0.2)";
c.globalCompositeOperation = 'destination-out';
c.stroke();
c.beginPath();
c.moveTo(e.clientX, e.clientY);
}
canvas.addEventListener("mousedown", startPosition);
canvas.addEventListener("mouseup", finishedPosition);
canvas.addEventListener("mousemove", draw);
});
【问题讨论】:
标签: javascript canvas path html5-canvas dom-events