ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

距離の比較

ある2点間の距離は三平方の定理より、次のように求めることができる。

Point A,B;
distance = sqrt( (B.x-A.x)*(B.x-A.x) + (B.y-A.y)*(B.y-A.y) );

xどうし、yどうしの差を二乗して足して平方根をとれば良い。
二つの距離の大小を比較するような場合、上のように距離を求めて比較してもよいが、距離は必ずプラスになるのだから、両方とも二乗してから比較しても良い。つまり、平方根の計算が必要なくなる。

squareDistance = (B.x-A.x)*(B.x-A.x) + (B.y-A.y)*(B.y-A.y);

DirectXのD3DXVec2LengthSq()のようにライブラリにベクトルの長さの二乗を求めるものが用意されているのはこの理由から。