Axis-Aligned Bounding Box. 軸平行境界ボックス。 各軸に並行な辺で構成する長方形による境界ボックス。
ボックスと点の衝突判定
ボックスの左上隅の座標をとし、幅を、高さをとする。このとき、ボックスの右端は、下端はとなる。 点の座標をとする。
衝突判定:
- 点がボックスと衝突している条件は、点の x 座標がボックスの左右の範囲にあり、かつ、点の y 座標がボックスの上下の範囲にあることである
ボックス同士の衝突判定
左上隅の座標で位置をとるボックス
この場合、衝突判定はできるが重なりの程度を知ることが難しい。
素直な方法
ボックスの各隅(4つの点)に対して、ボックスと点の衝突判定を行う。 回のチェックが必要。
水平方向・垂直方向の重なり
それぞれのボックスの上(左)端が一方のボックスの下(右)端より高いか(すなわち両方のボックスと交差する水平(垂直)線を引けるかどうかと言い換えられる)で、各軸方向の重なりを判定できる。どちらも重なっていれば、ボックス同士が交差するすなわち衝突していると言える
一方のボックスの左上隅の座標を、幅を、高さをとする。 もう一方のボックスの左上隅の座標を、幅を、高さをとする。
水平方向の衝突判定: 垂直方向の衝突判定:
素直な方法と比べて、チェックする条件を減らすことができた。
中心の座標で位置をとるボックス
一方のボックスの中心座標を、幅を、高さをとする。 もう一方のボックスの中心座標をを、幅を、高さをとする。 このとき、二つのボックスの
- 水平方向の距離は
- 垂直方向の距離は となる。
すると、
- 水平方向の重なりの程度は
- 垂直方向の重なりの程度は と知ることができる。
すなわち、
水平方向で重なっていないとき: 水平方向で重なっているとき:
垂直方向で重なっていないとき: 垂直方向で重なっているとき:
のように判定できる。