PHP判断点是否在不规则多边形中
来源:互联网 发布:网络上的死鱼是啥意思 编辑:程序博客网 时间:2024/06/06 11:17
<?php /*判断函数,$new放入多边形各个顶点的坐标,$t为判断点的位置,$n为顶点坐标的个数-1;若点在多边形内则返回1,否则返回0;*/ function inpolygon($new,$t,$n){ for($i = 0;$i<=$n;$i++){ $new[$i][0]-=$t[0]; $new[$i][1]-=$t[1]; } $t1 = $new[0][0]>=0?($new[0][1]>=0?0:3):($new[0][1]>=0?1:2); for($sum =0,$i=1;$i<=$n;$i++){ if(!$new[$i][0] && !$new[$i][1]){ break; } $f = $new[$i][1]*$new[$i-1][0] - $new[$i][0]*$new[$i-1][1]; if(!$f && $new[$i-1][0]*$new[$i][0]<=0 && $new[$i-1][1]*$new[$i][1]<=0){ break; } $t2 = $new[$i][0]>=0?($new[$i][1]>=0?0:3):($new[$i][1]>=0?1:2); if($t2 == ($t1+1)%4){ $sum +=1; } else if($t2 == ($t1+3)%4){ $sum -=1; } else if($t2 == ($t1+2)%4){ if($f>0)$sum+=2; else $sum-=2; } $t1 = $t2; } if($i<=$n || $sum){ return 1; } return 0; } $new = array( array(2,1), array(5,1), array(6,3), array(7,1), array(8,3), array(8,6), array(4,4), array(2,6), array(2,1), ); $new2 = array(6,3); /*调用函数*/ echo inpolygon($new,$new2,count($new)-1); ?>
阅读全文
0 0
- PHP判断点是否在不规则多边形中
- [几何]判断点是否在不规则多边形内
- [几何]判断点是否在不规则多边形内
- cocos2d-x 学习笔记-判断点击点是否在不规则多边形中
- 判断点是否在多边形中
- 判断点是否在多边形中
- 判断一个点是否在多边形中
- 判断点是否在多边形中
- 判断一个坐标点是否在不规则多边形内部的算法
- 判断一个坐标点是否在不规则多边形内部的算法
- 判断点是否在多边形中 射线判断法
- PHP判断点是否在多边形区域内外
- 判断点是否在不规则区域范围内
- iOS中判定某点是否在不规则多边形中的解决方案
- 判断某个点是否在一个多边形中
- Qt判断点是否在多边形区域中
- 如何判断一个点在不规则多边形内部
- 判断点在多边形中
- HuffmanTree的构建
- Spring集成redis(Spring Data Redis)
- 【报错】resultMap认知错误
- java中IO流Properties集合
- 常用Linux命令:scp
- PHP判断点是否在不规则多边形中
- java学习笔记4关键字
- 发布自己的工程库
- jQuery
- memberPointer
- mybatis中#与$的区别
- 使用CJSON库实现XML与JSON格式的相互转化
- 前后台时间差-父页面获取iframe值-隐藏滚动条-属性选择
- static g关键字