Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 PHP判断点是否在多边形区域内外

PHP判断点是否在多边形区域内外

发布时间:2020-10-17   编辑:www.jquerycn.cn
jquery中文网为您提供PHP判断点是否在多边形区域内外等资源,欢迎您收藏本站,我们将为您提供最新的PHP判断点是否在多边形区域内外资源
PHP判断点是否在多边形区域内外;

根据数学知识的射线法,射线与几何多边形相交的点的个数为奇数则是在几何内部;

偶数在外部;

/**  * Created by PhpStorm.  * function: inArea  * Description: 判断点是否在多边形区域内  * User: Xiaoxie  * @param $x   * @param $y  * @param $arr 几何订单坐标  * @return int  *  */ public function inArea($x,$y,$arr) {     //点的数量     $count = count($arr);     $n = 0; //点与线相交的个数     $bool = 0;//外     for ($i = 0, $j = $count - 1; $i < $count; $j = $i, $i  ) {         //两个点一条线 取出两个连接点的定点         $px1 = $arr[$i][0];         $py1 = $arr[$i][1];         $px2 = $arr[$j][0];         $py2 = $arr[$j][1];         //$x的水平位置画射线         if($x>=$px1 || $x>= $px2)         {             //判断$y 是否在线的区域             if(($y>=$py1 && $y<=$py2) || ($y>=$py2 && $y<= $py1)){                         if (($y == $py1 && $x == $px1) || ($y == $py2 && $x == $px2)) {                          #如果$x的值和点的坐标相同                         $bool = 2;//在点上                         return $bool;                       }else{                         $px = $px1 ($y-$py1)/($py2-$py1)*($px2-$px1) ;                         if($px ==$x)                         {                             $bool = 3;//在线上                         }elseif($px< $x){                             $n  ;                         }                       }             }         }       }     if ($n%2 != 0) {         $bool = 1;     }     return $bool; }

测试数组

$arr = [     ['9.4','12.04'],     ['6.68','8.61'],     ['9.05','6.06'],     ['6.24','3.87'],     ['10.02','2.55'],       ['14.06','4.13'],       ['16.35','7.56'],       ['11.69','8.35'], ];   $x =15.73; $y = 5.62; //在外 $x = 9.97; $y = 4.96; //在内

 29d36d286d4e908f40eb121030c365b.png

更多PHP相关知识,请访问PHP教程!

以上就是PHP判断点是否在多边形区域内外的详细内容,更多请关注jquery中文网其它相关文章!

  • 本文转载于:csdn,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    Highcharts教程(13) Pie饼图与其他图形
    如何使用jQuery Draggable和Droppable实现拖拽功能
    Highcharts教程(9) PlotOptions之area区域图
    说说php上传文件时的MAX_FILE_SIZE
    CSS 参考手册
    js获取当前对象大小与屏幕分辨率
    phpcms v9生成sitemap静态地图(图文详解)
    批处理的语句结构
    深入理解php中require/include的顺序
    Email系统的基本原理

    [关闭]