如何确定顶部的矩形?

时间:2013-03-25 03:36:18

标签: java swing overlap rectangles

我目前有一个绘制重叠矩形的程序,并想知道是否有一种简单的方法来确定哪个形状在顶部(最明显)。这让我很难过,因为在处理3D时没有像z轴那样使用。

overlapping rectangles

我尝试循环遍历矩形并使用.contains方法但它返回特定点下的所有矩形而不是最高级别的矩形。

我也在搜索过,但也许我使用了错误的关键字?

1 个答案:

答案 0 :(得分:5)

通常当人们绘画代码时,他们会做类似的事情:

列出rectangles = ....

for (int i = 0; i < rectangles.size(); i++)
    //paint the rectangle

因此,如果您想搜索Point以确定它所处的Rectanle,那么您应该使用:

for (int i = rectangles.size() - 1; i >= 0; i--)
{

    if (rectangles.get(i).contains(yourPoint))
    {
         // do something
         break;
    }
}

从最后开始,将为您绘制最后一个矩形,这意味着它位于所有其他矩形的顶部。