平面上多边形边的最小间距算法

akiko 2002-11-18 08:54:09
给定平面上一组不相交也无包含关系的多边形,多边形的边绝大多数都是水平或垂直边,只有少数45度,135度的边。
e1是多边形1中的一条边,e2是多边形2中的一条边,给定一个最小间距S。
求:所有间距小于S的边组(边组中的2条边属于不同的多边形)。

有没有效率高一点的算法???
...全文
263 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
akiko 2002-12-04
  • 打赏
  • 举报
回复
这么久了没人回复,感谢lins(*有为青年*) 提供的思路,给分了!
akiko 2002-11-27
  • 打赏
  • 举报
回复
把您的思路改进一下:把多边形的顶点按X坐标从小到大排列,如果有相临X坐标的差小于s,则检查在这相临X坐标上的垂直边的距离。对水平边的处理类似,对于斜边也只有扩展成正方形(以斜边为对角线作正方形,再把这正方形外扩s作为结果),检测落在正方形内的边。
这样怎么样?
akiko 2002-11-19
  • 打赏
  • 举报
回复
补充说明一下,两条边间距的概念:
有两条边边1和边2,p1是边1上一点,p2是边2上一点,则p1p2是一条线段,当p1p2的长度最小时这个长度就是边1和边2的间距。

感谢lins提供的的思路,我想想.
能否再提示提示,头一回做这样的算法,没什么经验.
林仪明 2002-11-18
  • 打赏
  • 举报
回复
我大概的看了一下!有一个大概的思路。如下:
由于大多数边是水平或垂直的,可以用两组平行线来做。其中一组是垂直平行线如下:第一条线在最左端的多边形的左端点。两条平行线的距离是s。这样每次向右平移一条边,如果有两个不属于同一个多边形的而且垂直的边在这两条平行线中,那么这两条边的距离小于s。同理可以找到水平的线。对于45度,135度的边,可以用一个对角线长为s的正方形,来平移查找。
不知道行不行?我的电脑有问题,那位大哥可以实现一下。

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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