点1と点2のxyz座標を入力すると、3D空間の2点間の距離を計算します。x・y・zそれぞれの増加量も同時に表示します。
このページでできること
- 空間(3次元)の2点のxyz座標を入れるだけで、2点間の距離 \(d\) がその場でわかります
- 距離と同時に、xの増加量 \(\Delta x\)・yの増加量 \(\Delta y\)・zの増加量 \(\Delta z\) もまとめて計算します
- 計算結果はマウスでぐるぐる回せる3Dの図でも表示され、「求めた距離が2点を結ぶ線分(直方体の対角線)の長さである」ことが目で確認できます
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
3Dゲームでは、キャラクターや弾・アイテムの位置を(x, y, z)の座標で管理し、「距離が一定以下になったら当たり」「一定距離まで近づいたら敵が気づく」と判定します。例えば自機が(1, 1, 1)、敵が(2, 3, 3)にいれば距離は \(\sqrt{1^2 + 2^2 + 2^2} = 3\) です。この計算を毎フレームくり返しているのが、3Dゲームの距離判定の正体です。
平面の2Dゲームで使う距離の公式に、\(z\) の項が1つ増えただけです。
ドローンの位置は「水平方向にどれだけ離れているか(x・y)」と「高さ(z)」の3つで表せます。操縦者から水平に東へ60m・北へ80m、高さ50mの位置にいる機体までの直線距離は \(\sqrt{60^2 + 80^2 + 50^2} = \sqrt{12500} \fallingdotseq 111.8\)mと計算できます。
電波の届く範囲や目視できる距離の目安を考えるときに使われる、空間の距離そのものです。
3D CADでは、部品の穴の中心や頂点の位置を空間座標で指定します。図面に直接書かれていない「空間で斜めに離れた2点の距離」は、座標の差からこのページの式で求められます。例えば横に30mm・奥に40mm・上に120mm離れた2点の距離は \(\sqrt{30^2 + 40^2 + 120^2} = 130\)mm。
強度部材の長さや配管・配線の最短経路の見積もりなど、ものづくりの現場で日常的に使われる計算です。
化学の世界では、分子の中の原子1つ1つの位置を空間座標で記録します(タンパク質のデータベースなどもこの形式です)。2つの原子の座標がわかれば、その間の距離(結合の長さや原子同士の近さ)はこのページの式そのもので計算できます。
薬の候補分子が標的にうまくはまるかの検討など、創薬・材料開発を支える基本の計算です。
式と図
用語・記号の解説
記号
| \(d\) | ディー | 空間の2点間の距離。distance(距離)の頭文字です。 |
| \((x_1, y_1, z_1)\), \((x_2, y_2, z_2)\) | エックスいち・ワイいち・ゼットいち エックスワン・ワイワン・ゼットワン | 空間の2つの点の座標。\(x\)・\(y\) の2つで平面の位置を、\(z\) で高さを表し、右下の小さい数字(添え字)は「1つ目の点・2つ目の点」の区別です。 |
| \(\Delta x\), \(\Delta y\), \(\Delta z\) | デルタエックス、デルタワイ、デルタゼット | 増加量(座標の差)。\(\Delta\)(デルタ)は「変化・差」を表すギリシャ文字で、\(\Delta x = x_2 - x_1\)、\(\Delta y = y_2 - y_1\)、\(\Delta z = z_2 - z_1\) です。 |
| \(\ell\) | エル | この解説で、直方体の「床の対角線」の長さに付けた記号。\(\ell^2 = \Delta x^2 + \Delta y^2\) で、三平方の定理を2回使う導き方の中継ぎ役です。 |
| \(\sqrt{\phantom{a}}\) | ルート 根号(こんごう) | 平方根(2乗するとその数になる数)を表す記号。\(\sqrt{9} = 3\)(3² = 9 だから)。空間の距離の公式でも、最後に1回だけルートをとります。 |
用語
| 座標空間 | ざひょうくうかん | x軸・y軸に高さのz軸を加えた、点の位置を(x, y, z)の3つの数の組で表す空間。平面(2次元)の座標に「高さ」が1つ増えたものです。 |
| 座標 | ざひょう | 点の位置を数の組で表したもの。空間では点(2, 3, 3)のように3つの数の組になり、「x方向に2、y方向に3、z方向(高さ)に3」の位置を表します。 |
| 線分 | せんぶん | 2つの点を端としてまっすぐ結んだ線。2点間の距離とは、この線分の長さのことです。 |
| 三平方の定理 | さんへいほうのていり | 直角三角形で「直角をはさむ2辺の2乗の和 = 斜辺の2乗」が成り立つという定理(ピタゴラスの定理)。空間の距離の公式は、この定理を2回続けて使ったものです。中学3年で学びます。 |
| 直方体の対角線 | ちょくほうたいのたいかくせん | 直方体の、向かい合う頂点同士を結ぶ線。縦a・横b・高さcの直方体の対角線の長さは \(\sqrt{a^2 + b^2 + c^2}\) で、空間の2点間の距離はこれと同じ計算です。 |
| ユークリッド距離 | ユークリッドきょり | このページで計算している「2点をまっすぐ結んだ距離」の正式な呼び名。3次元に限らず、データ分析やAIの分野で点同士の近さを測る基本の距離としてこの名前がよく使われます。 |
| 次元 | じげん | 位置を表すのに必要な数の個数。直線上は1次元(数直線)、平面は2次元(x, y)、空間は3次元(x, y, z)です。距離の公式は、次元が増えるたびにルートの中の項が1つずつ増えるだけで、形は変わりません。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 座標平面(中学1年) |
|
| 正の数・負の数の計算(中学1年) |
|
| 平方根(中学3年) |
|
| 三平方の定理(中学3年) |
|
| 空間図形・座標空間(中学1年・高校数学) |
|
Excelで計算する方法
| 点1のx座標 x₁ | 1 |
| 点1のy座標 y₁ | 1 |
| 点1のz座標 z₁ | 1 |
| 点2のx座標 x₂ | 2 |
| 点2のy座標 y₂ | 3 |
| 点2のz座標 z₂ | 3 |
| 2点間の距離 d | =SQRT((B4-B1)^2+(B5-B2)^2+(B6-B3)^2) |
| 点1のx座標 x₁ | 0 |
| 点1のy座標 y₁ | 0 |
| 点1のz座標 z₁ | 0 |
| 点2のx座標 x₂ | 3 |
| 点2のy座標 y₂ | 4 |
| 点2のz座標 z₂ | 12 |
| xの増加量 Δx | =B4-B1 |
| yの増加量 Δy | =B5-B2 |
| zの増加量 Δz | =B6-B3 |
| 床の対角線 ℓ=√(Δx²+Δy²) | =SQRT(B7^2+B8^2) |
| 2点間の距離 d=√(ℓ²+Δz²) | =SQRT(B10^2+B9^2) |
「SQRT(…)」は平方根、「^2」は2乗の意味です。
1つ目の表なら距離3になります。2つ目の表はΔx=3・Δy=4・Δz=12から、まず床の対角線ℓ=5、次に距離d=13が求められ、「三平方の定理を2回使う」途中の値も確認できます。
Googleスプレッドシートで計算する方法
| 点1のx座標 x₁ | 1 |
| 点1のy座標 y₁ | 1 |
| 点1のz座標 z₁ | 1 |
| 点2のx座標 x₂ | 2 |
| 点2のy座標 y₂ | 3 |
| 点2のz座標 z₂ | 3 |
| 2点間の距離 d | =SQRT((B4-B1)^2+(B5-B2)^2+(B6-B3)^2) |
| 点1のx座標 x₁ | 0 |
| 点1のy座標 y₁ | 0 |
| 点1のz座標 z₁ | 0 |
| 点2のx座標 x₂ | 3 |
| 点2のy座標 y₂ | 4 |
| 点2のz座標 z₂ | 12 |
| xの増加量 Δx | =B4-B1 |
| yの増加量 Δy | =B5-B2 |
| zの増加量 Δz | =B6-B3 |
| 床の対角線 ℓ=√(Δx²+Δy²) | =SQRT(B7^2+B8^2) |
| 2点間の距離 d=√(ℓ²+Δz²) | =SQRT(B10^2+B9^2) |
Pythonで計算する方法
import math
x1, y1, z1 = 1.0, 1.0, 1.0 # 点1の座標
x2, y2, z2 = 2.0, 3.0, 3.0 # 点2の座標
delta_x = x2 - x1 # xの増加量
delta_y = y2 - y1 # yの増加量
delta_z = z2 - z1 # zの増加量
distance = math.sqrt(delta_x**2 + delta_y**2 + delta_z**2) # 2点間の距離
print(f"xの増加量 Δx: {delta_x}")
print(f"yの増加量 Δy: {delta_y}")
print(f"zの増加量 Δz: {delta_z}")
print(f"2点間の距離 d: {distance}")
# 同じ計算は math.dist でも1行で書ける(Python 3.8以降)
print(f"math.distでの確認: {math.dist((x1, y1, z1), (x2, y2, z2))}")
数式記述言語(LaTeX等)での書き方(コピペ可)
d = √((x₂ − x₁)² + (y₂ − y₁)² + (z₂ − z₁)²)
d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi>
<mo>=</mo>
<msqrt>
<mrow>
<msup>
<mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>−</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mrow><mo>(</mo><msub><mi>y</mi><mn>2</mn></msub><mo>−</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mrow><mo>(</mo><msub><mi>z</mi><mn>2</mn></msub><mo>−</mo><msub><mi>z</mi><mn>1</mn></msub><mo>)</mo></mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
</math>
d = sqrt((x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2)
Sqrt[(x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2]
d := sqrt((x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2);
d = sqrt((x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2);
d = √((x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2)
Δx² + Δy² + Δz² = d²
\Delta x^2 + \Delta y^2 + \Delta z^2 = d^2
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msup><mrow><mi mathvariant="normal">Δ</mi><mi>x</mi></mrow><mn>2</mn></msup>
<mo>+</mo>
<msup><mrow><mi mathvariant="normal">Δ</mi><mi>y</mi></mrow><mn>2</mn></msup>
<mo>+</mo>
<msup><mrow><mi mathvariant="normal">Δ</mi><mi>z</mi></mrow><mn>2</mn></msup>
<mo>=</mo>
<msup><mi>d</mi><mn>2</mn></msup>
</mrow>
</math>
(Delta x)^2 + (Delta y)^2 + (Delta z)^2 = d^2
dx^2 + dy^2 + dz^2 == d^2
dx^2 + dy^2 + dz^2 = d^2;
dx^2 + dy^2 + dz^2 == d^2
Δx^2 + Δy^2 + Δz^2 = d^2
ChatGPT に聞いて計算してもらう方法
あなたは数学の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 3D空間(座標空間)の2点 (1, 1, 1) と (2, 3, 3) について、次の値をそれぞれ求めてください。 1. 2点間の距離 d(空間の距離の公式 d = √((x2−x1)² + (y2−y1)² + (z2−z1)²) を使う) 2. xの増加量 Δx、yの増加量 Δy、zの増加量 Δz 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
