A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张东贤 中级黑马   /  2013-3-21 00:42  /  1029 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哪位大神给点提示,
写一方法,判断两
个矩形是否相交,矩形的坐标分
别是(x1,y1),(x2,y2),
(x3,y3),(x4,y4)

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-21 10:38
提问的题目最好写上你要问的问题,或其关键字,不要写类似“问题”、“求大神”等题目,谢谢  发表于 2013-3-21 10:38

2 个回复

倒序浏览
用两个点表示的矩形,只可能是正交于在x,y坐标系的,也就是各个边或平行于x轴或平行于y轴。
那么,基于这样的判断,如果两个矩形相交,那么他们的相交区域必然是一个矩形(点也算)
  1. 分别判断水平区间和垂直区间是否相交
  2.     第一个矩形:(rect1.tlx, rect1.tly), (rect1.brx, rect1.bry)
  3.     第二个矩形:(rect2.tlx, rect2.tly), (rect2.brx, rect2.bry)

  4.     判断水平 区间是否相交
  5.    if (rect1.tlx < rect2.tlx && rect1.brx > rect2.tlx) {
  6.     return true;
  7. } else if (rect2.tlx < rect1.tlx && rect2.brx > rect1.tlx) {

  8. }
  9. return false;
复制代码

评分

参与人数 1技术分 +1 收起 理由
scott0610 + 1 赞一个!

查看全部评分

回复 使用道具 举报
思路挺好,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马