清除画布会导致旧内容在下次绘制时重新出现

发布于 2024-10-19 18:53:16 字数 53 浏览 1 评论 0原文

我有一个清晰的按钮,似乎可以工作......但实际上它不能。当我返回画布时,我可以看到绘图。

I have a clear button which seems to work..but actually its not. When I click back on the canvas I can see the drawing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水晶透心 2024-10-26 18:53:16

你清理画布的方式没有问题,问题在于你的逻辑。

每次您单击或移动鼠标时,都会调用addClick方法,该方法会填充数组clickXclickY和< code>clickDrag 与坐标;然后调用 redraw 方法,在 canvas 上绘制点。

因此,当您清除画布时,您无法重置这些数组,因此当再次调用重绘方法时(清除画布后),旧点也会被绘制。

因此,当您清除 canvas 时,请尝试清空数组 clickXclickYclickDrag,如下所示;这样当你重新开始时就不会考虑旧的观点。

clickX = [];
clickY = [];
clickDrag = [];

There is no problem in the way you are clearing the canvas, the problem lies in your logic.

Everytime you click or move the mouse the addClick method is called, which populates the arrays clickX, clickY and clickDrag with the coordinates; and then the redraw method is called which plots the points on the canvas.

So when you clear the canvas you are failing to reset these arrays, so when the redraw method is called again (after clearing the canvas), the old points get plotted too.

So try emptying the arrays clickX, clickY and clickDrag as shown below, when you clear your canvas; so that the old points are not considered when you start fresh.

clickX = [];
clickY = [];
clickDrag = [];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文