That "winding number" did ring a bell, 2 years ago we had some discussion on this topic. http://www.jsoftware.com/pipermail/programming/2010-April/019363.html
R.E. Boss > -----Oorspronkelijk bericht----- > Van: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] Namens Bo Jacoby > Verzonden: vrijdag 11 mei 2012 23:37 > Aan: Programming forum > Onderwerp: Re: [Jprogramming] Irregularly shaped buttons > > en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Mathematics/2009_December_17#Easiest_way_to_decide_if_a_point_is > _within_a_polygon.3F says: > > The J (programming language) allows this short implementation of the winding > number formula: W=.9&o.@(%&0j2p1)@(+/)@:^.@(% > _1&|.) . To test if (0,0) is within the square ((1,0),(0,1),(-1,0),(0,-1)), > type W 1 0j1 _1 0j_1 and get the result 1, indicating YES. To test if > (4,0) is within the square, type W 1 0j1 _1 0j_1 - 4 and get the result 0, > indicating NO. > > > >________________________________ > > Fra: Don Guinn <dongu...@gmail.com> > >Til: Programming forum <programming@jsoftware.com> > >Sendt: 22:54 fredag den 11. maj 2012 > >Emne: Re: [Jprogramming] Irregularly shaped buttons > > > >I made a form of parking spaces in a RV storage facility. Each space was a > >button and irregularly shaped and at odd angles. > > > >As you suggested given a mouse click, I selected all potential shapes close > >for performance. To determine which shape the click actually was I took all > >adjacent corners of a shape and formed triangles with the click. Then > >computed the areas of these triangles. If all areas are positive (or > >negative, depending which way you order the corners) the click is within > >the shape. This only works if the shapes are convex. > >On May 11, 2012 10:42 AM, "Ian Clark" <earthspo...@gmail.com> wrote: > > > >> To save me reinventing the wheel, has anybody written routines to act > >> on mouseclicks inside irregularly-shaped "buttons"? > >> > >> Techniques I'm considering: > >> > >> ++ Detecting if a point is inside an arbitrary polygon > >> > >> ++ Unions and differences of rectangles, triangles and sectors > >> > >> ++ Color of the pixel under the cursor > >> > >> If it works on a simple map of the USA, it'll probably work for my purpose. > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >---------------------------------------------------------------------- > >For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm