对红宝石中的矩形感到困惑

时间:2015-03-20 00:29:51

标签: ruby rectangles

此代码采用两个矩形的坐标并找到它们的交点。

def rec_intersection(rect1, rect2)
  x_min = [rect1[0][0], rect2[0][1]].max
  x_max = [rect1[1][0], rect2[1][1]].min
  y_min = [rect1[0][0], rect2[0][1]].max
  y_max = [rect1[1][0], rect2[1][1]].min
  return nil if ((x_max < x_min) || (y_max < y_min))
  return [[x_min, y_min], [x_max, y_max]]
end

rec_intersection([[1, 1], [2, 2]],[[0, 0], [5, 5]])

我真的不明白。具体来说,我想更多地了解坐标的确切含义(我知道它们是左下角和右上角的坐标),但任何人都能详细说明吗?它们相对于什么?矩形的大小?还是它的位置?左下角坐标为[1,1]的矩形与左下角为[0,0]的矩形有何不同?

另外我想知道为什么为了找到x_min,正在使用max方法(反之亦然)。任何澄清都表示赞赏。

1 个答案:

答案 0 :(得分:1)

这是一个评论,我会在OP看到后删除。以下是两个矩形的图表,rect1中包含rect2

enter image description here

之前,我将[1,1][2,2]分别称为rect1的“左上角”和“右下角”,应该是“左下角“和”右上角“。