in reply to Speeding up point-in-polygon -- take two
Using a bounding box is a good start, but a bounding circle should be even better. A circle only needs to test one dimention:
if( $circle->distance_from_center( $x, $y ) <= $circle->radius ) { # Point ($x, $y) is in circle }
I've also found that dropping some of the calculations into C can speed it up quite a bit without being terribly complex to interface back to Perl.
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.
|
|---|