最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-03 18:22:02
文档

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

PHP判断点是否在多边形区域内外:PHP判断点是否在多边形区域内外;根据数学知识的射线法,射线与几何多边形相交的点的个数为奇数则是在几何内部;偶数在外部;/** * Created by PhpStorm. * function: inArea * Description: 判断点是否在多边形区域内 * User: Xiaoxie *
推荐度:
导读PHP判断点是否在多边形区域内外:PHP判断点是否在多边形区域内外;根据数学知识的射线法,射线与几何多边形相交的点的个数为奇数则是在几何内部;偶数在外部;/** * Created by PhpStorm. * function: inArea * Description: 判断点是否在多边形区域内 * User: Xiaoxie *
 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; //在内

 

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

文档

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

PHP判断点是否在多边形区域内外:PHP判断点是否在多边形区域内外;根据数学知识的射线法,射线与几何多边形相交的点的个数为奇数则是在几何内部;偶数在外部;/** * Created by PhpStorm. * function: inArea * Description: 判断点是否在多边形区域内 * User: Xiaoxie *
推荐度:
标签: 判断 区域 php
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top