| 123456789101112131415161718192021222324 |
- <?php
- class LewaimaiMath {
- /*
- * nvert 多边形的顶点数
- * vertx, verty 顶点X坐标和Y坐标分别组成的数组
- * testx testy 需要测试的点的X坐标和Y坐标
- *
- */
- public static function InPolygon($nvert, $vertx, $verty, $testx, $testy)
- {
- $c = false;
-
- $i = 0;
- $j = 0;
- for ($i = 0, $j = $nvert - 1; $i < $nvert; $j = $i++)
- {
- if ( (($verty[$i] > $testy) != ($verty[$j] > $testy)) && ($testx < ($vertx[$j] - $vertx[$i]) * ($testy - $verty[$i]) / ($verty[$j] - $verty[$i]) + $vertx[$i]) )
- $c = !$c;
- }
-
- return $c;
- }
- }
|