判断一个点是否在多边形区域内
来源:互联网 发布:圣人 知乎 编辑:程序博客网 时间:2024/05/17 03:53
/*
函数的输入:
(1)当前点的坐标p
(2)区域顶点数组pt[];
(3)顶点数nCount
输出: 在区域内返回TRUE,否则返回FALSE。
Point类型是一个结构:
struct Point
{
类型 x;//此处类型根据采用的经纬度类型决定。
类型 y;
};
*/
BOOL PtInPolygon(Point p, Point pt[], int nCount)
{
int nCross = 0;
for (int i = 0; i < nCount; i++)
{
Point p1 = pt[i];
Point p2 = pt[(i + 1) % nCount];
if (p1.y == p2.y)
{
if (p.y == p1.y && p.x >= min(p1.x, p2.x) && p.x <= max(p1.x, p2.x))
return true;
continue;
}
if (p.y < min(p1.y, p2.y) || p.y > max(p1.y, p2.y))
continue;
double x = (double)(p.y - p1.y) * (double)(p2.x - p1.x) / (double)(p2.y - p1.y) + p1.x;
if (x > p.x)
nCross++;
else if (x == p.x)
return true;
}
if (nCross % 2 == 1)
return true;
return false;
}
- 判断一个点是否在多边形区域内
- 判断一个点是否在多边形区域内
- 判断一个点是否在多边形区域内
- 判断一个点是否在多边形区域内
- 判断一个点是否在多边形区域内
- Java 判断一个点是否在多边形区域内【转】
- Java 判断一个点是否在多边形区域内
- 怎么判断一个点是否在多边形区域内
- Java 判断一个点是否在多边形区域内
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
- 在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内
- 判断一个点是否在指定区域内
- 判断一个点是否在指定区域内
- 判断一个点是否在指定区域内
- 判断一个点是否在三角形区域内
- java/c# 判断点是否在多边形区域内
- 关于SVN Update Error: Please execute the 'Cleanup' command 问题
- Xcode_7 iOS_9 静态表 Objective-C (12)
- 蓝鸥Unity开发基础——递归
- java知识图谱,java se -->java web-->j2ee
- iOS -常用小技巧大杂烩
- 判断一个点是否在多边形区域内
- java基础学习总结——java.awt.EventQueue.invokeLater干什么用的
- hdu2608 0or1(找规律)
- 为什么加了overflow后父类的margin-top不随子类移动了
- end-to-end 理解
- Linux单用户模式及grub使用
- Unity&Shader案例篇-镜子1
- 正弦波近似SmoothTriangleWave
- java.lang.ClassNotFoundException: com.android.tools.fd.runtime.BootstrapApplication