如何判断几个区间是否有交叉

红帽小小 2010-02-25 11:22:26
(10,20)(20,30)(30,40)(40,50)
如何判断(X,Y)和上面4个区间是否有交叉
各位朋友有什么好方法没?
...全文
905 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
红帽小小 2010-02-26
  • 打赏
  • 举报
回复
好象我也暂时想不到其他的办法,先结了吧
谢谢2位帮忙~~
wanghui0380 2010-02-25
  • 打赏
  • 举报
回复
(10,20)(20,30)如果只是判断有交叉的到也简单

(10,20)-的大小 20-10=10
(20,30)大小30-20=10

(10,20)(20,30)大小30-10=20

现在10+10=20,ok,他们没有交叉

验证:
(10,20)(19,30)
| |
10 11

(10+11)>(30-10)
ok他们有交叉
红帽小小 2010-02-25
  • 打赏
  • 举报
回复
补充一下:要判断的区间个数不一定
gsz_stylm 2010-02-25
  • 打赏
  • 举报
回复
其实,我的想法很简单,既然是区间了,他就有个界限,你可以用他的界限来看看他是处在哪个区间,或者说是那几个区间之间。
判断(x,y)有没有跟其他的区间交叉,
如果x<10,说明他肯定没有跟(10,20)交叉,也不会跟区间左界限>10的区间交叉,
如果x>10说明他有可能跟(10,20)交叉,当然还要看y的大小了,
总之,就是比较x,y 跟几个区间界限的大小,这样就能判定他跟几个区间的交叉。
在这里,还是要好好的考虑一下怎样比较下来,比较的节省时间。
红帽小小 2010-02-25
  • 打赏
  • 举报
回复
小于等于就没有交叉,一旦大于就交叉了,是吧

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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