二点間の距離を測るには Math.hypot(x, y) が便利

カテゴリ フロントエンド

タグ

常日頃プログラミングをしていて、二点間の距離を測りたいときはよくあることかと思いますが、Math.hypot を使うとこれを簡単に求めることができます。

二点間の距離の求め方

原点 (0, 0) から点P (x, y) までの距離 d は三平方の定理より導くことができる。

\[x^2 + y^2 = d^2 (d \ge 0)\\
d = \sqrt{x^2 + y^2}\]

点1を (x1, y1)、点2を (x2, y2) とおくと、二点間の距離は、

\[d = \sqrt{(x_2 – x_1)^2 + (y_2 – y_1)^2}\]

Math.sqrt + Math.pow

三平方の定理による計算をそのまま表すと、

// ES5
const d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y2, 2))

Math.hypot

ES6 から Math.hypot(各引数を二乗した総和の平方根)が使える。

// ES6
const d = Math.hypot(x2 - x1, y2 - y2)

Math.hypot(x, y) は、原点 (0, 0) から点 (x, y) までの距離とみてもわかりやすい。