Javaで2つの四角形が重なっているかどうかを確認する
1. 概要
このクイックチュートリアルでは、指定された2つの長方形が重なっているかどうかを確認するアルゴリズムの問題を解決する方法を学習します。
まず、問題の定義を確認してから、徐々に解決策を構築していきます。
最後に、Javaで実装します。
2. 問題定義
3. 初期設定
この問題を解決するには、まずプログラムで四角形を定義することから始めます。 A rectangle can be easily represented by its bottom-left and top-right coordinates:
public class Rectangle {
private Point bottomLeft;
private Point topRight;
//constructor, getters and setters
boolean isOverlapping(Rectangle other) {
...
}
}
ここで、Pointは、空間内の点(x,y)を表すクラスです。
public class Point {
private int x;
private int y;
//constructor, getters and setters
}
後で、RectangleクラスでisOverlapping(Rectangle other)メソッドを定義して、別の指定された長方形(other)とオーバーラップするかどうかを確認します。
4. 溶液
5. Java実装
ソリューションを理解したので、isOverlapping()メソッドを実装しましょう。
public boolean isOverlapping(Rectangle other) {
if (this.topRight.getY() < other.bottomLeft.getY()
|| this.bottomLeft.getY() > other.topRight.getY()) {
return false;
}
if (this.topRight.getX() < other.bottomLeft.getX()
|| this.bottomLeft.getX() > other.topRight.getX()) {
return false;
}
return true;
}
RectangleクラスのisOverlapping()メソッドは、長方形の1つが他の長方形の上または左側にある場合はfalseを返し、それ以外の場合はtrueを返します。
1つの長方形が他の長方形の上にあるかどうかを確認するために、それらのy-coordinatesを比較します。 同様に、x-coordinatesを比較して、一方の長方形がもう一方の長方形の左側にあるかどうかを確認します。
6. 結論
この短い記事では、2つの与えられた長方形が互いに重なり合うかどうかを見つけるというアルゴリズムの問題を解決する方法を学びました。 これは、2つの長方形オブジェクトの衝突検出戦略として機能します。
いつものように、ソースコード全体が利用可能ですover on Github.