如何编程求平面上直线与任意多边形(注意凹多边形)的有效相交部分

时间:2022-02-08 03:59:22
如何编程求平面上直线与任意多边形(注意凹多边形)的有效相交部分,用C++语言
已知:直线的方程,以及多边形的顶点坐标
求:两者的相交部分~

5 个解决方案

#1


第一步,判断每个顶点坐标是否在直线上,如果是,则是一个交点。
第二步,使用直线依次和多边形的每个边求交点。
第三步,将所有的交点在直线上进行排序。
第四步,每次区两个点,取中点,判断中点是否在多边形内部,如果是,则是一段交线。
要注意:交点是顶点坐标的情况。
点是否在一个多边形内的算法比较多,简单的如:面积法等。

#2


多谢大侠指点~~~

#3


楼上算法有点问题,没有考虑相切的情况!

#4


抱歉,看错了。

#5


给你个网站参考下
http://blog.csdn.net/shaoshaoh/archive/2007/02/26/1514908.aspx

#1


第一步,判断每个顶点坐标是否在直线上,如果是,则是一个交点。
第二步,使用直线依次和多边形的每个边求交点。
第三步,将所有的交点在直线上进行排序。
第四步,每次区两个点,取中点,判断中点是否在多边形内部,如果是,则是一段交线。
要注意:交点是顶点坐标的情况。
点是否在一个多边形内的算法比较多,简单的如:面积法等。

#2


多谢大侠指点~~~

#3


楼上算法有点问题,没有考虑相切的情况!

#4


抱歉,看错了。

#5


给你个网站参考下
http://blog.csdn.net/shaoshaoh/archive/2007/02/26/1514908.aspx