The winding number program is written and tested, and does not assume the 
polygon to be convex.

   rd=.(**|)&.+. NB. round complex number
   W=.rd@(%&0j2p1)@(+/)@:^.@(% _1&|.)NB. winding number 
   p=.0j1^i.4 NB. test polygon
   rd p NB. display test polygon vertices
1 0j1 _1 0j_1
   load'plot'

   plot (,{.)p NB. show polygon
   W p-2 NB. 2 is outside polygon
0
   W p-0 NB. 0 is inside polygon
1





>________________________________
> Fra: Ian Clark <earthspo...@gmail.com>
>Til: Programming forum <programming@jsoftware.com> 
>Sendt: 17:38 lørdag den 12. maj 2012
>Emne: Re: [Jprogramming] Irregularly shaped buttons
> 
>Thanks, everyone. Plenty of ideas here.
>
>Lazy me: I was angling for some written & tested code. But at least I
>know I won't be wasting my time reinventing the wheel.
>
>The "polygon" can't be assumed convex. In fact, since I'd like to
>accommodate the most general shape, I'm going with either a binary
>pixel mask (the crudest, easiest solution) or detecting the underlying
>pixel color upon mouseclick.
>
>
>On Fri, May 11, 2012 at 5:41 PM, 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

Reply via email to