问题描述
- canvas如何响应鼠标事件删除不规则图形
-
首先,这个canvas有背景色。其次,我已写好一个画图函数。每次点击鼠标,就能在鼠标的位置添加一个不规则图形。
这时,能否通过在已建立的不规则图形上再次点击鼠标,而把该图形删除。
同时,canvas的背景色不受影响,或许和该图形叠加的其他图形也不受影响。
我的思路是这样的。
0)将我的不规则图形看作尽可能大的矩形,用这个矩形来近似处理该不规则图形。
1)用一个队列,记录下每次鼠标的点击位置,也就是每个图形生成的坐标。
2)每次点击鼠标,均进行判定
若
该位置在某个不规则图形的近似矩形范围内,则重绘背景及其他所有不规则图形。
否则
在当前位置画新的不规则图形。我的思路是否可行?
解决方案
思路都有了,你自己试试不就知道了。。还不如直接清空整个画布,然后重绘其他不在点击范围内的图形
解决方案二:
这个很好实现,只要添加一个标志变量,用于表示是否绘制不规则图形。在每次绘制不规则图形前,都检查该标志变量,为true则绘制,为false则不绘制。然后设置该标志变量默认为true,当鼠标点击了不规则图形时,设置标志变量为false,然后重新绘图。
时间: 2024-10-26 15:27:54