Qt判断点是否在多边形区域中
2017-06-05 14:26
267 查看
bool DataConvert::isInsidePoly(const QPointF &iPoint,const QPolygonF &iMyPoly)
{
qreal x=iPoint.x(),y=iPoint.y();
int left=0;
int right=0;
int j=iMyPoly.size()-1;
for(int i=0;i<iMyPoly.size();i++){
if((iMyPoly[i].y()<y&&iMyPoly[j].y()>=y)||(iMyPoly[j].y()<y&&iMyPoly[i].y()>=y)){
if((y-iMyPoly[i].y())*(iMyPoly[i].x()-iMyPoly[j].x())/(iMyPoly[i].y()-iMyPoly[j].y())+iMyPoly[i].x()<x){
left++;
}
else right++;
}
j=i;
}
return left&right;
}
极端情况下,可能会有问题,一般情况下,运行良好!
{
qreal x=iPoint.x(),y=iPoint.y();
int left=0;
int right=0;
int j=iMyPoly.size()-1;
for(int i=0;i<iMyPoly.size();i++){
if((iMyPoly[i].y()<y&&iMyPoly[j].y()>=y)||(iMyPoly[j].y()<y&&iMyPoly[i].y()>=y)){
if((y-iMyPoly[i].y())*(iMyPoly[i].x()-iMyPoly[j].x())/(iMyPoly[i].y()-iMyPoly[j].y())+iMyPoly[i].x()<x){
left++;
}
else right++;
}
j=i;
}
return left&right;
}
极端情况下,可能会有问题,一般情况下,运行良好!
相关文章推荐
- Java 判断一个点是否在多边形区域内
- Java类判断百度地图上某点是否在多边形区域内
- java/c# 判断点是否在多边形区域内
- 在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内
- 如何判断一个指定的经纬度点是否落在一个多边形区域内?
- PostGis 如何判断两个多边形是否有重叠的区域
- JAVA判断一个点坐标是否在一个多边形区域内和是否在一个圆形区域内
- 百度地图 判断一个标注点是否在多边形区域里
- 判断一个点是否在多边形区域内
- c# 判断点是否在区域内点在区域内在多边形内判断
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- GIS-判断点是否落在指点的多边形区域内
- php结合mongodb判断坐标是否在指定多边形区域内的实例
- 判断一个点是否在多边形区域内
- mysql 判断点是否在指定多边形区域内
- js判断一个地图标注点是否在多边形区域里
- 百度地图API(3):判断地图上的点是否在 圆形 多边形 区域内
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- mongodb 判断坐标是否在指定多边形区域内的方法
- PHP判断点是否在多边形区域内外