私は現在、重なり合う長方形を描画するプログラムを持っており、どの形状が一番上にあるか(最も見えるか)を判断する簡単な方法があるかどうか疑問に思っていました。3Dを扱うときのように使用するz軸がないので、これは私を困惑させました。
長方形をループして.containsメソッドを使用しようとしましたが、特定のポイントの下にあるすべての長方形が返され、最高レベルの長方形は返されません。
私も検索しましたが、間違ったキーワードを使用している可能性がありますか?
私は現在、重なり合う長方形を描画するプログラムを持っており、どの形状が一番上にあるか(最も見えるか)を判断する簡単な方法があるかどうか疑問に思っていました。3Dを扱うときのように使用するz軸がないので、これは私を困惑させました。
長方形をループして.containsメソッドを使用しようとしましたが、特定のポイントの下にあるすべての長方形が返され、最高レベルの長方形は返されません。
私も検索しましたが、間違ったキーワードを使用している可能性がありますか?
通常、人々がコードをペイントするとき、彼らは次のようなことをします:
長方形のリスト=...。
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;
}
}
最後から始めて、最後にペイントされた長方形が表示されます。これは、他のすべての長方形の上にあることを意味します。