如何判断一线段是否与以封闭多边形相交 在线等。。

dijianhua 2007-09-24 07:04:59
如何判断一线段是否与以封闭多边形相交 在线等。。多谢
急啊
...全文
671 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyaojie8818 2007-09-26
  • 打赏
  • 举报
回复
manbaum(砸锅上网) 说的方法虽然是不对的,不过很有指导意义,呵呵
我觉得可以把他说的内容改一改,先判断线段所在的直线与多边形有多少个交点
然后再判断交点是否在线段上.
dijianhua 2007-09-26
  • 打赏
  • 举报
回复
jhjhgkjhgkjhkjhkjgjhfghfhgfjlgh
liuxiuk 2007-09-26
  • 打赏
  • 举报
回复
算法多种
如区域编码

拿四边形来说:

7| 8 | 9
--|-----------|---
| |
2 | 0 | 1
__|___________|___
4| 5 | 6

对线段的端点进行区域判断:

1.端点有一个在区域0 => 相交
2.两个端点都在区域0 =>不相交
3.两个端点在同侧 =>不相交
4.两个端点在异侧 =>求与多边行边界线的焦点, 然后判断该点是否在区域内?
1).在 ==> 相交
2).不在=>不相交





dijianhua 2007-09-25
  • 打赏
  • 举报
回复
唉 快要放弃了 。。。。。
lyg_zy 2007-09-25
  • 打赏
  • 举报
回复
mark,学习一下。
ToperRay 2007-09-25
  • 打赏
  • 举报
回复
很多图形算法库对实体相交有现成的算法,你可以研究一下autocad的算法库
dijianhua 2007-09-25
  • 打赏
  • 举报
回复
没有其它简单些的方法吗?大侠们帮忙啊
manbaum 2007-09-25
  • 打赏
  • 举报
回复
最直接的办法就是用线段和多边形的每条边去比,如果线段的和边有交点就相交。
dijianhua 2007-09-24
  • 打赏
  • 举报
回复
帮忙啊。。。。。。。。。。
manbaum 2007-09-24
  • 打赏
  • 举报
回复
哦。我想错了。呵呵。sorry。再想想——
dijianhua 2007-09-24
  • 打赏
  • 举报
回复
什么是凸包啊? 你说的对吗? 要是一个线段穿过一个三角形,两个端点都在外,那也是相交的啊
manbaum 2007-09-24
  • 打赏
  • 举报
回复
其实很简单:你就判断线段的两个端点和凸包的关系,如果两个端点都在凸包内或者都在凸包外,那就不相交,如果一个在内,一个在外,那就一定相交。

这里要求是凸包,要是有凹进去的,那这个说法是错的。你自己考虑一下吧。不过,对于凹进去的多边形,可以先分解为若干凸包,这样也是可以解的。
dijianhua 2007-09-24
  • 打赏
  • 举报
回复
我搜了啊 没有找到啊? 我说的是线段,和直线不一样吧? 你那里有吗?
多谢啊
manbaum 2007-09-24
  • 打赏
  • 举报
回复
封闭多边形是凸包的话,有现成算法,自己搜一下吧,很多。
dijianhua 2007-09-24
  • 打赏
  • 举报
回复
帮忙啊aaaaaaaaaaaaa
dijianhua 2007-09-24
  • 打赏
  • 举报
回复
up 没人帮忙啊 有个思路也好 多谢了

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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