要判断点是否落在多边形的关系
来源:互联网 发布:qq群优化软件破解版 编辑:程序博客网 时间:2024/05/02 02:38
要判断点是否落在多边形内部,图形学书上给出了三种解决方法,一种是针对凸多边形的叉乘法,二是角度和判别法,三是水平/垂直交叉点数判别法。由于后两种可以针对任意多边形,故权衡之后我用了最简单最直接的角度和判别法。
double angle = 0;
realPointList::iterator iter1 = points.begin();
for (realPointList::iterator iter2 = (iter1 + 1); iter2 < points.end();
++iter1, ++iter2)
{
double x1 = (*iter1).x - p.x;
double y1 = (*iter1).y - p.y;
double x2 = (*iter2).x - p.x;
double y2 = (*iter2).y - p.y;
angle += angle2D(x1, y1, x2, y2);
}
if (fabs(angle - span::PI2) < 0.01) return true;
else return false;
另外,可以使用bounding box来加速。
if (p.x < (*iter)->boundingBox.left ||
p.x > (*iter)->boundingBox.right ||
p.y < (*iter)->boundingBox.bottom ||
p.y > (*iter)->boundingBox.top) 。。。。。。
对于多边形来说,计算bounding box非常的简单。只需要把水平和垂直方向上的最大最小值找出来就可以了。
- 要判断点是否落在多边形的关系
- GIS-判断点是否落在指点的多边形区域内
- 判断点是否落在多边形内部的算法
- 判断一个点是否落在多边形内
- 判断一个点是否落在多边形内
- 判断一个点是否落在多边形内
- Mysql中判断一个点是否落在多边形内。
- MySQL中判断一个点是否落在多边形内
- 如何判断一个指定的经纬度点是否落在一个多边形区域内?
- 如何判断一个指定的经纬度点是否落在一个多边形内
- 如何判断一个指定的经纬度点是否落在一个多边形内
- 如何判断一个指定的经纬度点是否落在一个多边形内
- 在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内
- 判断一个指定的经纬坐标是否落在一个多边形区域内?
- 判断点与多边形的位置关系
- 判断点与多边形的位置关系
- 关于指定的经纬度是否落在多边形内
- 关于指定的经纬度是否落在多边形内
- [双语阅读]世界最胖男子“大”婚
- 想成为嵌入式程序员应知道的0x10个基本问题
- 将Ubuntu安装到硬盘的最简单方法
- vc时间处理
- 谈谈中国环保经济
- 要判断点是否落在多边形的关系
- 小心别被“忽悠”了
- 改革开放30年经典热词回放-时政类
- C++0x 走马观花:核心语言可用性的增强
- 打造不被查杀的黑器—特征码的自动定位与通用修改方法
- 微软发布.Net Framework 3.5下的 Chart 控件。
- C++0x 走马观花:核心语言功能性的提升
- 与Python之父的对话:Python的成功之路
- C++0x 走马观花:C++标准库的改变