min($poly1y,$poly2y)) { if ($py <= max($poly1y,$poly2y)) { if ($px <= max($poly1x,$poly2x)) { if ($poly1y != $poly2y) { $xinters = ($py-$poly1y)*($poly2x-$poly1x)/($poly2y-$poly1y)+$poly1x; if ($poly1x == $poly2x || $px <= $xinters) { $counter++; } } } } } $poly1 = $poly2; } // end of While each polygon if ($counter % 2 == 0) { return(false); // outside } else { return(true); // inside } return true; } } ?>