0

私は現在、重なり合う長方形を描画するプログラムを持っており、どの形状が一番上にあるか(最も見えるか)を判断する簡単な方法があるかどうか疑問に思っていました。3Dを扱うときのように使用するz軸がないので、これは私を困惑させました。

重なり合う長方形

長方形をループして.containsメソッドを使用しようとしましたが、特定のポイントの下にあるすべての長方形が返され、最高レベルの長方形は返されません。

私も検索しましたが、間違ったキーワードを使用している可能性がありますか?

4

1 に答える 1

4

通常、人々がコードをペイントするとき、彼らは次のようなことをします:

長方形のリスト=...。

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

したがって、ポイントを検索してそれがどのRectanleにあるかを判別する場合は、次を使用する必要があります。

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

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

最後から始めて、最後にペイントされた長方形が表示されます。これは、他のすべての長方形の上にあることを意味します。

于 2013-03-25T03:44:48.880 に答える