[whatwg] Canvas isPointInPath() coordinate space

David Flanagan david at davidflanagan.com
Thu Jul 15 10:55:38 PDT 2010

Oliver Hunt wrote:
> On Jul 14, 2010, at 10:58 PM, David Flanagan wrote:

>> So here's my question: if I want to do hit-testing as described above, do I need to take the mouse coordinates from the event, subtract the offset of the canvas, and then divide by 2?  As the spec is written, I think I do have to do that division manually.  Is that what is intended?  What if the user has zoomed in?  Is it even possible to use isPointInPath() correctly in that case?
> isPointInPath works in the context of the canvas -- if you have coordinates from an event you will need to transform those from screen coordinates to the base coordinate space used by the canvas.  In other words:
> 1. adjust for the offset of the canvas element relative to the event coordinate space
> 2. adjust for the scale factor between the canvas element and the canvas element's context

Thanks for the clarification, Oliver.  Now that getBoundingClientRect() 
is widely implemented and is being standardized, those calculations are 
no longer difficult!


More information about the whatwg mailing list