NB.*crossPnP v point in closed polygon, crossing number NB. bool=. points crossPnP polygon crossPnP=: 4 : 0"2 'X Y'=. |:x 'x0 y0 x1 y1'=. |:2 ,/\^:(2={:@$@]) y p1=. ((y0<:/Y)*. y1>/Y) +. (y0>/Y)*. y1<:/Y p2=. (x0-/X) < (x0-x1) * (y0-/Y) % (y0 - y1) 2|+/ p1*.p2 )