【发布时间】:2021-05-27 01:43:19
【问题描述】:
在我的应用程序中,我使用 HTML Canvas 创建了一个画布,我希望能够单击页面以绘制一个用颜色填充的圆圈,单击页面的另一部分并让圆圈自动与一条线连接。
我几乎可以使用它,但是当我尝试填充我的圆圈时,它也会填充圆圈之间的空间。
这是我尝试使用 ctx.fill() 时的样子:
let hasCircle = false;
document.addEventListener('click', onMouseMove);
const c = document.getElementById("canvas");
const ctx = c.getContext("2d");
// Create a circle on page click
document.getElementById('canvas').onclick = function(event) {
ctx.arc(event.clientX - 10, event.clientY - 10, 4, 0, 2 * Math.PI);
ctx.fill()
if (!hasCircle) {
hasCircle = true;
}
}
// Connect circles with a line
function onMouseMove(event) {
if (hasCircle) {
ctx.lineTo(event.clientX - 10, event.clientY - 10);
ctx.stroke();
}
}
function reset() {
hasCircle = false;
}
#canvas {
border: 1px solid black;
}
<canvas id="canvas"></canvas>
有没有办法准确地指定我想用颜色填充什么?
【问题讨论】:
-
你可以传递一个
Path2D对象来填充。
标签: javascript html css canvas