判断点是否在多边形内
2017-05-06 17:09
225 查看
计算机图形学中经常需要判断点是否在多边形内,刚好最近写程序的时候遇到这个问题,原理很简单也就不在这里啰嗦了,当时抱着偷懒的心理随便在网上找了一段代码贴到程序里,好像不尽人意,或多或少的存在一些问题,经过多次尝试终于完美解决了,下面附上相关代码:
由于我的工程是在Qt下的所以就用了Qt中的类,如果在非Qt工程下只需要替换成相关的类就行。
bool isInPolygon4(const QVector<QPoint>& pts, QPoint & pt) { unsigned vertCount = pts.size(); if (vertCount < 2) { return FALSE; } bool inside = FALSE; for (unsigned i = 1 ; i <= vertCount ; ++i) { const QPoint &A = pts[i - 1]; const QPoint &B = pts[i % vertCount]; if ((B.y() <= pt.y() && pt.y() < A.y()) || (A.y() <= pt.y() && pt.y() < B.y())) { float t = (pt.x() - B.x())*(A.y() - B.y()) - (A.x() - B.x())*(pt.y() - B.y()); if (A.y() < B.y()) t = -t; if (t < 0) inside = !inside; } } return inside; }
由于我的工程是在Qt下的所以就用了Qt中的类,如果在非Qt工程下只需要替换成相关的类就行。
相关文章推荐
- 用Oracle的函数,判断点是否在多边形内
- php结合mongodb判断坐标是否在指定多边形区域内的实例
- JS实现判断点是否在多边形内部(2)--射线法实现
- 判断一个点是否在多边形内部的问题
- SGU 124. Broken line 计算几何 判断点是否在多边形内
- 如何判断一个点是否在一个多边形内部
- 如何判断一个点是否在多边形内部ne?
- 判断点及线段是否在多边形内
- 判断是否是凸多边形,判断点是否在多边形内,点到直线的距离
- 判断一个点是否在多边形内部 - 射线法思路
- C# 判断点是否在多边形内
- 和大家分享一个判断点是否在多边形范围内的算法
- 判断多边形是否为平行四边形
- 判断一个点是否在任意闭合多边形内
- 判断点是否在任意多边形内(java)
- JavaScript实现,判断一个点是否在多边形内
- objective-c判断点是否在多边形内(包括在多边形上)的一个经典算法
- 判断一个点是否在多边形内部
- 判断点是否在多边形内部
- 判断一个点是否在多边形内