直线与多边形相交的问题!

secondflying 2005-09-19 04:16:29
有一个Polygon,为简单多边形,在这个多边形内有两个点,p1,p2,(两个点都在多边形内)求p1到p2的延长线(p1p2射线的延长线)与多边形的第一个交点,怎么求?
...全文
342 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
allan1031 2005-09-19
  • 打赏
  • 举报
回复
对P1,P2 求斜率

然后计算P2,P1斜率方向上的几何图形的基点

一般有两种情况,一是几何图形存在一点且改点存在于p1p2的射线
二是在存在一条边和P1,P2的射线相交

对于情况一很好判断,对于情况二,有一个办法可以解决

即使以斜率为标准,如果斜率为正,则取斜率方向上的远点点为基准,取该多边形对于该远点满足如下条件的两个端点
A 该两端点的Y轴必须在P1P2中近点之上,比如P1为(1,1)p2(2,2)则该坐标必须大于1
B 应选择直线距离为对于远点最近的两个点,如A的情况,则远点为P2
C 在满足A,B的情况后,选择出存在的端点,如在这些端点集合中存在边的关系,则进行D步骤的计算
D 对于P1P2的直线和满足ABC条件的边作二元联立方程,计算出相交的点
E,对于相交点的情况在作判定,排除该点不满足在该多边形边的定义域和值域的情况
则可以求解出唯一的点也就是相交点了

对于斜率为负数的情况也很简单,只要对A,B条件的近点远点情况作一个修正就可以了
secondflying 2005-09-19
  • 打赏
  • 举报
回复
楼上的兄弟可说得明白些么?
「已注销」 2005-09-19
  • 打赏
  • 举报
回复
极坐标转换
然后再转回来
secondflying 2005-09-19
  • 打赏
  • 举报
回复
是简单多边形,只需求出第一个交点!
cuilichen 2005-09-19
  • 打赏
  • 举报
回复
简单多边形?是凸多边形吗?如果是凸多边形,那么就会只有一个交点。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧