Java GWT画布的命中检测-绘图采用哪种策略?
我正在用GWT Canvas Java创建一些类似于绘图/流程图/UML图的工具。 对于我的绘画命中检测,我可以想象3种不同的策略,但我不知道哪一种最适合我的目标 只需跟踪所有形状坐标并在鼠标单击上迭代所有对象 在鼠标单击的重影画布上绘制所有对象,并在每次绘制对象后使用isPointInPath 使用重影画布,用自己的颜色绘制每个对象,如000001、000002,并在地图中保留它们的引用。然后在鬼画布上检测鼠标点击,得到属于鼠标下像素颜色的对象Java GWT画布的命中检测-绘图采用哪种策略?,java,gwt,java-canvas,Java,Gwt,Java Canvas,我正在用GWT Canvas Java创建一些类似于绘图/流程图/UML图的工具。 对于我的绘画命中检测,我可以想象3种不同的策略,但我不知道哪一种最适合我的目标 只需跟踪所有形状坐标并在鼠标单击上迭代所有对象 在鼠标单击的重影画布上绘制所有对象,并在每次绘制对象后使用isPointInPath 使用重影画布,用自己的颜色绘制每个对象,如000001、000002,并在地图中保留它们的引用。然后在鬼画布上检测鼠标点击,得到属于鼠标下像素颜色的对象 你喜欢什么,为什么?我认为第一种方法最好, 很有
你喜欢什么,为什么?我认为第一种方法最好, 很有可能,当你想移动或调整显示对象的大小时,你会保留对形状ie的引用,所以你需要做的就是实现额外的方法布尔值isInPoint mouseclick,shape shape,因为if的实现对于每种类型的对象可能不同,如果你把它放在你的形状上会更好 我不知道你想要你的ghostcanvas作品怎么样,但是我怎么画任何额外的东西听起来像是巨大的资源浪费 您的第三个策略将需要从图像/画布中获取原始像素,这可能是昂贵的操作