1. 首页
  2. 编程语言
  3. 其他
  4. 判断一个点P是否在多边形内部算法

判断一个点P是否在多边形内部算法

上传者: 2019-03-03 16:38:17上传 CPP文件 2.34KB 热度 59次
本例使用:从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)
用户评论
码姐姐匿名网友 2019-03-03 16:38:17

算法是关键,想嵌入到其他程序中还要自己重写一下函数的好。非常不错,谢谢

码姐姐匿名网友 2019-03-03 16:38:17

很好,就是得费些力气集成到代码中,如果楼主有个直接能用的程序就好了,加油

码姐姐匿名网友 2019-03-03 16:38:17

还有一些特殊情况要考虑。 假如考虑边(P1,P2) 1)如果射线正好穿过P1或者P2,那么这个交点会被算作2次,处理办法是如果P的从坐标与P1,P2中较小的纵坐标相同,则直接忽略这种情况 2)如果射线水平,则射线要么与其无交点,要么有无数个,这种情况也直接忽略。 3)如果射线竖直,而P0的横坐标小于P1,P2的横坐标,则必然相交。 4)再判断相交之前,先判断P是否在边(P1,P2)的上面,如果在,则直接得出结论:P再多边形内部。

码姐姐匿名网友 2019-03-03 16:38:17

很好 可以使用 是纯粹的算法 呵呵 得自己建工程调试

码姐姐匿名网友 2019-03-03 16:38:17

感觉一般,而且之后一个CPP文件,无法再MFC下运行

码姐姐匿名网友 2019-03-03 16:38:17

很好,很适合学习,从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)

码姐姐匿名网友 2019-03-03 16:38:17

很好,可以用,但如果需要用在MFC中,还要再改动一下