ACM-计算几何 #Topcoder #SRM187-DIV2 PointInPolygon
2015-05-24 08:44
337 查看
题目链接在这儿
大致意思就是输入一些坐标值均为int的点,且前一个与后一个相连, 最后一个点与第一个相连.这些点组成了一个凸多边形.
然后给一个查询点, 让我们判断该点在这个多边形的
首先判断
如果不在
如果从一个多边形内部选取一个点向外做一条射线, 那么该射线与所有边的交点个数之和一定为
还有实现的细节, 就是一条射线应该如何确定及表示呢? 算法中采用的是一种所谓dirty的方法,那就是选取无穷远处一点,用random*1000 来近似得到,然后代入进行运算
大致意思就是输入一些坐标值均为int的点,且前一个与后一个相连, 最后一个点与第一个相连.这些点组成了一个凸多边形.
然后给一个查询点, 让我们判断该点在这个多边形的
边界上,
内部还是
外部
首先判断
testPoint是否在
边界上是很简单的,只需要对多边形的每一条进行判断,或者判断
testPoint到每条边的距离,如果有至少一条为0, 则在
边界上
如果不在
边界上, 那就需要判断是在外部还是内部. 对于这种情况的判断稍微难一些,采用的是topcoder上的tutorial里的算法,算法分析如下:
如果从一个多边形内部选取一个点向外做一条射线, 那么该射线与所有边的交点个数之和一定为
奇数,不然该点就在多边形外部
还有实现的细节, 就是一条射线应该如何确定及表示呢? 算法中采用的是一种所谓dirty的方法,那就是选取无穷远处一点,用random*1000 来近似得到,然后代入进行运算
相关文章推荐
- hdu 3694 10 福州 现场 E - Fermat Point in Quadrangle 费马点 计算几何 难度:1
- ACM-计算几何之Scrambled Polygon——poj2007
- HDU 5581 Infinity Point Sets ACM/ICPC 2015 上海区域赛 I 计算几何+组合计数
- HDU 3694 Fermat Point in Quadrangle (计算几何- 四边形的费马点)
- HDU 3694 Fermat Point in Quadrangle (计算几何- 四边形的费马点)
- ACM计算几何模板——二维几何基础(基本运算,点和线,多边形)
- Area in Triangle(计算几何基础)
- POJ3525/LA3890 Most Distant Point from the Sea 解题报告【计算几何】【二分答案】【半平面交】
- 计算几何(point&line)红书模板
- ACM-计算几何之The area——hdu1071
- 2015’12杭电校赛1002 Polygon (计算几何)
- 【计算几何】Codeforces Round #113 (Div. 2)-B. Polygons
- ACM-计算几何之Segment set——hdu1558
- ACM-计算几何之Leyni, LOLI and Line——hrbust1104
- 【HDU5563 BestCoder Round 62 (div1)A】【计算几何 凸包】Clarke and five-pointed star 正五边形判定 正五角星判定
- poj 1584A Round Peg in a Ground Hole(计算几何 判断凸包)
- CUGB计算几何专题:B - A Round Peg in a Ground Hole判断线段相交
- [hdu 5533][2015ACM/ICPC亚洲区长春站] Dancing Stars on Me 计算几何
- ACM-计算几何之Lifting the Stone——hdu1115
- Codeforces Round #421 (Div. 2) B. Mister B and Angle in Polygon