在点击画布时,使用 fillStyle 先填上颜色,再覆盖整个画布
/**
* 滑鼠点下画布後开始画画 or 填满
*/
const handleMouseDown = () => {
setIsDrawing(true);
if (tool === "fillColor") {
fillCanvas();
}
};
/**
* 填满色彩
*/
const fillCanvas = () => {
const ctx = canvasRef.current.getContext("2d");
ctx.fillStyle = activeColor;
ctx.fillRect(0, 0, 500, 500);
};
与画笔操作相似,不过使用的是 clearRect,操作更简易
ctx.clearRect(x, y, width, height);
第一个与第二个参数为需要清除的位置,第三四个为尺寸。
const handleDrawCanvas = (point: { x: number; y: number }) => {
const ctx = canvasRef.current.getContext("2d");
switch (tool) {
case "eraser": // 橡皮擦
ctx.clearRect(point?.x, point?.y, 10, 10);
break;
case "pencil":
// 同上方画笔
}
pointsArray = [...pointsArray, point];
};
最後呈现本篇章功能~
https://i.imgur.com/rxoup1T.gif
>>: [Day19] 为什麽都没有 Google Map 评论抽奖器? 只好用Python做一个了!
Hello rookie! 在经过昨天安装完环境後,相信大家已经迫不及待要写第一支程序了吧。 相信大...
前一篇提到可以利用指令tiup cluster template > topology.yam...
Hi,Привет,我是Charlie! 在Day06当中,我们完成了後端的基本注册、登入,在今天我...
偶尔程序也会碰到需要辨别变数的状态,有时候是用於防止使用者输入奇怪的文字,有时候是帮助自己确认变数的...
让开发者可以更容易的从母元件传递 state 到深层的子元件,并让多个用到的 state 资料的元件...