时间:2022-7-14来源:本站原创作者:佚名
彭洋预约 http://m.39.net/pf/a_9202502.html

引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数射线法适用范围:任意多边形,不需考虑精度误差和多边形点给出的顺序

以被测点Q为端点,向任意方向作射线(一般水平向右作射线),统计该射线与多边形的交点数。如果为奇数,Q在多边形内;如果为偶数,Q在多边形外。

?phpfunctioninArea(x,y,arr){//点的数量count=count(arr);n=0;//点与线相交的个数bool=false;//外for(i=0,j=count-1;icount;j=i,i++){//两个点一条线取出两个连接点的定点px1=arr[i][jd];py1=arr[i][wd];px2=arr[j][jd];py2=arr[j][wd];//x的水平位置画射线if(x=px1

x=px2){//判断y是否在线的区域if((y=py1y=py2)

(y=py2y=py1)){if((y==py1x==px1)

(y==py2x==px2)){#如果x的值和点的坐标相同bool=2;//在点上returnbool;}else{px=px1+(y-py1)/(py2-py1)*(px2-px1);if(px==x){bool=3;//在线上}elseif(pxx){n++;}}}}}if(n%2!=0){bool=true;}returnbool;}area_arr=[[jd=.,wd=30.],[jd=.,wd=30.],[jd=.,wd=30.],[jd=.,wd=30.],];var_dump(inArea(.,30.,area_arr));预览时标签不可点收录于话题#个上一篇下一篇
转载请注明原文网址:http://www.coolofsoul.com/phptx/phptx/24258.html

------分隔线----------------------------