Wow, that is tight and vectorized code. I suppose it goes back to the clever 
algorithm - nice!
Christian

On 9/09/2010, at 9:35 PM, Karl Glazebrook wrote:

> Folk,
> 
> I wrote a PDL vectorized version of the 'points in a polygon' program a few 
> years ago for my own use. [BTW Matt the problem was selecting points in a 
> area of a color-color diagram]
> 
> Here is the code. i/o are all vectors. Read it and weep :-)  
> 
> Karl
> 
> # Test points tx,ty to be in a polygon following 
> # http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
> # Nice fast VECTOR code!
> sub pnpoly{
>   my($tx, $ty, $vertx, $verty) = @_;
>   my $testx = $tx->dummy(0);
>   my $testy = $ty->dummy(0);
>   my $vertxj = $vertx->rotate(1);
>   my $vertyj = $verty->rotate(1);
>   $c =    sumover(    (($verty>$testy) != ($vertyj>$testy)) &
>                ($testx < ($vertxj-$vertx) * ($testy-$verty) / 
>                ($vertyj-$verty) + $vertx)
>                ) %2;
>  return $c;
> }
> 
> 
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl



_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to