问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问有判断点与多边形关系的PHP源码吗

发布网友 发布时间:2022-04-07 08:45

我来回答

2个回答

懂视网 时间:2022-04-07 13:07

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教程!

热心网友 时间:2022-04-07 10:15

建议你看graphviz 有破解版,一搜一大推
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在筋骨堂治疗腰椎间盘突出一个疗程后已有好转,隔了三、四天又疼上了... 美的3⃣️匹柜机空调为什么不制热是什么原因? 小票打印机不出字的原因及解决方法如何解决小票打印机无法打印字的问题... 电脑打单打印机出不了小票超市收银台电脑键盘怎么用 交易房屋如何分类 城市规划用途分类该怎么做 规划用途的分类 ...打火机散件设备公司 值得信赖么 ?是不是《骗子》皮包公司? 希望给予... 哈尔滨农垦太阳神打火机散件厂是否骗人 有没有人知道网上那些打火机加工的广告是不是真是可靠?做打火机反销... 九寸深一指宽多大 如果两个人同时上饿了么软件,一个人点了餐用了支付宝支付,这样会泄漏信息吗?另一个人会看到吗? 两人同时上饿了么软件,一个人点了餐用了支付宝支付,这样会泄漏信息吗?另一个人会看到吗? 饿了么是如何实现一分钱快餐的?如果给每人付款十多块,这么多人点那还不亏死。求科普这种运营知识。 如果两人同时上饿了么软件,一个人点了餐用了支付宝支付,这样会泄漏信息吗?另一个人会看到吗? 煤气罐有多重 出生证明、无犯罪记录证明、的认证费用。 空煤气罐多重 无犯罪记录证明这么难开吗 煤气罐(我们这叫液化器),一般一罐有多重? 我是哈尔滨理工大学南区的大四学生,现在单位要我开无犯罪记录证明,我应该去哪个派出所开呢 关于无犯罪记录证明,未婚证明和落户口的问题。 无犯罪证明哈尔滨 哈尔滨市香坊区无犯罪记录证明派出所可以开吗 户口迁移后的出生和无犯罪证明如何办理? 哈尔滨阿城区要开一张无犯罪记录证明该去哪里开 在哪里开无犯罪证明 哈尔滨无违法犯罪记录证明公证在哪公证 冰箱压缩机是否可以自己更换? ...手上沾了些玻璃胶,请问如何去掉手上的玻璃胶气味,对身体有危害吗?谢... 聪明的妻子怎么斗小三 漂亮女人11全集在线观看与下载漂亮女人全集 老公在外面有情人怎么办聪明女人斗小三攻略 为什么我现在看女生的下体总觉得很恶心? 漂亮女人12全集在线观看与下载漂亮女人全集 女生被踢到下体会很痛吗?我看了一个视频,被踢了以后满地打滚的 聪明的女人如何斗小三 漂亮女人14全集在线观看与下载漂亮女人全集 请大家帮我看完下面我亲身经历的内容,为这样的女朋友值不值得,谢谢了... 在生活中,如何智斗小三? 我看到一个视频,一开始是个很漂亮的女人,过了一会一看下面是个带把的,吓我一跳,如果是你看到会是什么 杜厦的个人事件 杜厦的介绍 最好的导购网站都有什么 杜夏的简介,请问谁有? 大家看有什么好的导购站吗?520淘宝 精品店铺多种选择,更有品牌旗舰店哦 杜夏是谁? 精品导购频道是一个怎么样的频道,雅昌艺术网的那个 有没有比较好的女装导购网站? 杜夏的介绍