Math World Lab

三平方の定理

直角三角形の3辺に隠れた面積の等式

Layer 1 — 直感・シミュレーター

黒い点をドラッグして直角三角形の形を自由に変えてみよう。3つの辺の上に立っている正方形の面積が同時に変化する。青の面積+赤の面積が、常に緑の面積と一致することを目で確かめよう。

a2a^2 = 3.0² = 9.00
b2b^2 = 2.0² = 4.00
c2c^2 = 3.61² = 13.00

↑ 黒い点をドラッグして直角三角形の形を変えると、3つの正方形の面積が連動する。a2+b2a^2 + b^2 = 13.00 c2c^2 = 13.00 が常に一致することを確認しよう。

Layer 2 — 定義・受験・証明

定義

直角三角形において、直角をはさむ2辺(直角をはさむ辺、脚)の長さを a,ba, b、直角の対辺(斜辺)の長さを cc とすると、次の関係が成り立つ。

a2+b2=c2a^2 + b^2 = c^2

これが三平方の定理(ピタゴラスの定理)である。

公式

a2+b2=c2a^2 + b^2 = c^2

証明・導出

最も直感的な証明の一つは正方形の面積を使う方法である。1辺 a+ba+b の正方形の中に、斜辺 cc の直角三角形を4つ、向きを変えて敷き詰める。

外側の正方形の面積は (a+b)2(a+b)^2。内側にできる小さな正方形(辺の長さ cc)の面積は c2c^2。三角形4枚の面積の合計は 4×12ab=2ab4 \times \frac{1}{2}ab = 2ab なので

(a+b)2=c2+2ab(a+b)^2 = c^2 + 2ab

左辺を展開すると a2+2ab+b2=c2+2aba^2 + 2ab + b^2 = c^2 + 2ab となり、両辺から 2ab2ab を引くと

a2+b2=c2a^2 + b^2 = c^2

が得られる。

押さえておきたいポイント

  • 直角三角形にのみ成り立つ特別な関係
  • 2点間の距離の公式 (x2x1)2+(y2y1)2\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2} の土台になっている
  • 3辺の長さの組(3,4,5 や 5,12,13 など)を「ピタゴラス数」と呼ぶ

Layer 3 — 工学応用・現場実装

2点間の距離計算(当たり判定・経路探索)

ゲームや地図アプリで「2点がどれくらい離れているか」を求める処理は、三平方の定理そのものである。円形の当たり判定(半径以内に入ったか)や、A*探索アルゴリズムのヒューリスティック関数などで頻出する、最も基本的で応用範囲の広い公式。

1type Point = { x: number; y: number };
2
3function distance(p1: Point, p2: Point): number {
4 const dx = p2.x - p1.x;
5 const dy = p2.y - p1.y;
6 return Math.sqrt(dx * dx + dy * dy); // 三平方の定理 a^2 + b^2 = c^2
7}
8
9function isWithinRadius(p1: Point, p2: Point, radius: number): boolean {
10 // sqrt を避けて2乗のまま比較すると高速(当たり判定の定石)
11 const dx = p2.x - p1.x;
12 const dy = p2.y - p1.y;
13 return dx * dx + dy * dy <= radius * radius;
14}
15
16// 使用例
17const player: Point = { x: 0, y: 0 };
18const enemy: Point = { x: 3, y: 4 };
19
20console.log(distance(player, enemy)); // 5
21console.log(isWithinRadius(player, enemy, 6)); // true