はじめに
前の記事では、直線や平面に垂直な法線ベクトルについて考えました。直線や平面上の1点を \(\boldsymbol{p}\)、その上を動く点を \(\boldsymbol{x}\)、法線ベクトルを \(\boldsymbol{n}\) とすると、
$$
\boldsymbol{n}\cdot(\boldsymbol{x}-\boldsymbol{p})=0
$$
と表すことができました。
では、直線や平面の上ではなく、その外側にある点 \(Q\) から、直線や平面までの距離を求めたい場合はどうすればよいのでしょうか。ここで大切になるのが、前の記事で登場した法線ベクトルです。
点から直線・平面までの最短距離は、法線ベクトルの方向に測った距離です。
つまり、点から直線や平面へ向かうベクトルを、そのまま測るのではありません。そのベクトルのうち、法線ベクトルと同じ方向を向いている成分だけを取り出せばよいわけです。そして、この「ある方向の成分を取り出す」ために使えるのが内積です。
この記事では、点と直線・平面の距離の公式を暗記するのではなく、「なぜその公式になるのか」を法線ベクトルと内積から順番に導いていきます。

1.そもそも「点と直線の距離」とは?
まず、2次元平面に1本の直線があり、その直線の外側に点 \(Q\) があるとします。点 \(Q\) から直線上の点までは、いろいろな線を引くことができますが、その長さはすべて同じではありません。
では、どの長さを「点と直線の距離」と呼ぶのでしょうか。答えは、もっとも短いものです。
点 \(Q\) から直線へ垂線を下ろし、その交点を \(H\) とします。一方、直線上の別の点を \(X\) として、それぞれの長さを比べてみましょう。

図を見ると、\(QH\) は直線に垂直になっています。一方、\(QX\) は斜めに伸びています。三角形 \(QHX\) は \(H\) を直角とする直角三角形なので、斜辺 \(QX\) よりも \(QH\) のほうが短くなります。
したがって、点 \(Q\) と直線の距離は \(QH\) の長さになります。
点と直線の距離とは、その点から直線へ垂直に下ろした線分の長さです。
ここで「垂直」という言葉が出てきました。これは、まさに法線ベクトルが向いている方向です。
2.法線ベクトルの方向だけ取り出せばいい
直線上に1点 \(P\) をとり、その位置ベクトルを \(\boldsymbol{p}\) とします。また、直線の外側にある点 \(Q\) の位置ベクトルを \(\boldsymbol{q}\) とすると、\(P\) から \(Q\) へ向かうベクトルは、
$$
\boldsymbol{q}-\boldsymbol{p}
$$
です。ただし、このベクトルの長さがそのまま点と直線の距離になるわけではありません。
\(\boldsymbol{q}-\boldsymbol{p}\) には、直線に沿った方向の成分と、直線に垂直な方向の成分が含まれているからです。点と直線の距離として必要なのは、このうち直線に垂直な方向の成分だけです。
そして、直線に垂直な方向を向いているのが法線ベクトル \(\boldsymbol{n}\) でした。したがって、\(\boldsymbol{q}-\boldsymbol{p}\) を法線ベクトルの方向へ射影すれば、点と直線の距離が求められることになります。
この関係を図で確認してみましょう。

青いベクトル \(\boldsymbol{q}-\boldsymbol{p}\) は、直線上の点 \(P\) から点 \(Q\) へ直接向かうベクトルです。しかし、このベクトルには直線に沿った方向の成分も含まれています。
そのうち法線ベクトル \(\boldsymbol{n}\) と同じ方向の成分だけを取り出したものが、赤で示した距離 \(d\) です。
では、この「法線方向の成分」をどのように計算すればよいのでしょうか。ここで使えるのが内積です。
3.内積は「ある方向への成分」を取り出せる
内積の図形的な意味を思い出してみましょう。2つのベクトル \(\boldsymbol{a},\ \boldsymbol{b}\) のなす角を \(\theta\) とすると、
$$
\boldsymbol{a}\cdot\boldsymbol{b}
=
|\boldsymbol{a}||\boldsymbol{b}|\cos\theta
$$
でした。\(|\boldsymbol{a}|\cos\theta\) は、\(\boldsymbol{a}\) を \(\boldsymbol{b}\) の方向へ射影した長さです。
今回、この「射影する方向」として法線ベクトル \(\boldsymbol{n}\) を使います。すると、
$$
(\boldsymbol{q}-\boldsymbol{p})\cdot\boldsymbol{n}
=
|\boldsymbol{q}-\boldsymbol{p}||\boldsymbol{n}|\cos\theta
$$
となります。
ここで、\(|\boldsymbol{q}-\boldsymbol{p}|\cos\theta\) が、\(\boldsymbol{q}-\boldsymbol{p}\) の法線方向の成分です。したがって、両辺を \(|\boldsymbol{n}|\) で割れば、
$$
\frac{(\boldsymbol{q}-\boldsymbol{p})\cdot\boldsymbol{n}}
{|\boldsymbol{n}|}
$$
となります。
ただし、内積の値は点 \(Q\) が法線ベクトルの向き側にあるか、その反対側にあるかによって正にも負にもなります。距離は負にならないので、絶対値をつけて、
$$
d
=
\frac{
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
}{
|\boldsymbol{n}|
}
$$
となります。これが、点から直線までの距離をベクトルで表した式です。
「点から直線までの距離」は、点までのベクトルを法線方向へ射影した長さと考えることができます。

4.なぜ法線ベクトルの長さで割るのか?
ここで、「なぜ \(|\boldsymbol{n}|\) で割る必要があるの?」と思うかもしれません。これは、法線ベクトルの長さそのものは距離と関係ないからです。
たとえば、
$$
\boldsymbol{n}
=
\begin{pmatrix}
1\\
2
\end{pmatrix}
$$
が法線ベクトルなら、その2倍である
$$
2\boldsymbol{n}
=
\begin{pmatrix}
2\\
4
\end{pmatrix}
$$
も同じ方向を向いているので、同じ直線の法線ベクトルとして使えます。
ところが、内積 \(\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})\) は、\(\boldsymbol{n}\) を2倍すれば2倍になります。このままでは、どの長さの法線ベクトルを選ぶかによって「距離」が変わってしまいます。
そこで、法線ベクトルの長さ \(|\boldsymbol{n}|\) で割ります。\(\boldsymbol{n}\) を2倍すれば、分子も分母も2倍になるので、その比は変わりません。
つまり、
$$
\frac{
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
}{
|\boldsymbol{n}|
}
$$
とすることで、法線ベクトルの長さに左右されず、純粋に法線方向の距離だけを取り出しているわけです。
5.直線 \(ax+by=c\) までの距離を導く
では、普段よく見る点と直線の距離の公式につなげてみましょう。直線
$$
ax+by=c
$$
を考えます。この直線の法線ベクトルは、前の記事で見たように、
$$
\boldsymbol{n}
=
\begin{pmatrix}
a\\
b
\end{pmatrix}
$$
です。
また、直線上に1点 \(P(p_1,\ p_2)\) をとると、
$$
ap_1+bp_2=c
$$
が成り立ちます。直線の外側にある点を \(Q(x_0,\ y_0)\) とすると、
$$
\boldsymbol{q}-\boldsymbol{p}
=
\begin{pmatrix}
x_0-p_1\\
y_0-p_2
\end{pmatrix}
$$
です。
したがって、法線ベクトルとの内積は、
$$
\begin{aligned}
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
&=a(x_0-p_1)+b(y_0-p_2)\\
&=ax_0+by_0-(ap_1+bp_2)
\end{aligned}
$$
となります。
ここで \(ap_1+bp_2=c\) なので、
$$
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
=
ax_0+by_0-c
$$
です。また、法線ベクトルの長さは、
$$
|\boldsymbol{n}|=\sqrt{a^2+b^2}
$$
です。
したがって、点 \(Q(x_0,\ y_0)\) と直線 \(ax+by=c\) の距離は、
$$
d
=
\frac{|ax_0+by_0-c|}
{\sqrt{a^2+b^2}}
$$
となります。これが、よく知られている点と直線の距離の公式です。
点と直線の距離の公式は、法線ベクトルへの射影を成分で書いたものです。
6.具体例で計算してみる
たとえば、点 \(Q(3,\ 4)\) と直線
$$
2x+y=4
$$
の距離を求めてみましょう。この直線の法線ベクトルは、
$$
\boldsymbol{n}
=
\begin{pmatrix}
2\\
1
\end{pmatrix}
$$
です。
距離の公式に代入すると、
$$
d
=
\frac{|2\cdot3+1\cdot4-4|}
{\sqrt{2^2+1^2}}
=
\frac{6}{\sqrt5}
$$
となります。
ここで重要なのは、公式に数字を代入できることだけではありません。分子の \(|2\cdot3+1\cdot4-4|\) は、点 \(Q\) が直線から法線方向へどれだけずれているかを表しています。
ただし、法線ベクトル \((2,\ 1)^T\) の長さは \(1\) ではありません。そこで、\(\sqrt{2^2+1^2}\) で割ることで、本当の距離に直しているわけです。
7.3次元でも考え方はまったく同じ
ここまで2次元の直線について考えてきましたが、3次元の平面でも考え方は変わりません。平面
$$
ax+by+cz=d
$$
を考えます。この平面の法線ベクトルは、
$$
\boldsymbol{n}
=
\begin{pmatrix}
a\\
b\\
c
\end{pmatrix}
$$
です。
平面上の1点を \(P(p_1,\ p_2,\ p_3)\)、平面の外側にある点を \(Q(x_0,\ y_0,\ z_0)\) とすると、
$$
\boldsymbol{q}-\boldsymbol{p}
=
\begin{pmatrix}
x_0-p_1\\
y_0-p_2\\
z_0-p_3
\end{pmatrix}
$$
です。このベクトルの法線方向への成分を取り出せば、点 \(Q\) と平面の距離になります。
したがって、
$$
d
=
\frac{
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
}{
|\boldsymbol{n}|
}
$$
です。内積を計算すると、
$$
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
=
a(x_0-p_1)+b(y_0-p_2)+c(z_0-p_3)
$$
となります。
平面上の点 \(P\) では \(ap_1+bp_2+cp_3=d\) が成り立つので、
$$
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
=
ax_0+by_0+cz_0-d
$$
です。また、
$$
|\boldsymbol{n}|
=
\sqrt{a^2+b^2+c^2}
$$
なので、
$$
d
=
\frac{
|ax_0+by_0+cz_0-d|
}{
\sqrt{a^2+b^2+c^2}
}
$$
となります。これが、点と平面の距離の公式です。
8.直線と平面の距離の公式は同じ仕組み
ここで、2つの公式を並べてみましょう。
2次元で、点 \(Q(x_0,\ y_0)\) と直線 \(ax+by=c\) の距離は、
$$
d
=
\frac{|ax_0+by_0-c|}
{\sqrt{a^2+b^2}}
$$
でした。
一方、3次元で、点 \(Q(x_0,\ y_0,\ z_0)\) と平面 \(ax+by+cz=d\) の距離は、
$$
d
=
\frac{|ax_0+by_0+cz_0-d|}
{\sqrt{a^2+b^2+c^2}}
$$
でした。
見た目は少し違いますが、やっていることはまったく同じです。2次元では点から直線へ、3次元では点から平面へ垂線を下ろしています。どちらの場合も、その垂線は法線ベクトルと同じ方向を向いています。
図で並べて比べてみましょう。

左は2次元の「点と直線の距離」、右は3次元の「点と平面の距離」です。次元は違いますが、どちらも点から法線ベクトルの方向へ測った長さ \(d\) が最短距離になっています。
つまり、どちらも本質的には、
$$
d
=
\frac{
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
}{
|\boldsymbol{n}|
}
$$
という同じ式で表すことができます。
2次元の「点と直線の距離」と3次元の「点と平面の距離」は、どちらも「法線方向への射影」という同じ考え方から求められます。
次元が変わっても、「最短距離は垂直方向に測る」という本質は変わりません。
9.公式の分子は何を表しているのか?
ここでもう少し、距離の公式を眺めてみましょう。たとえば直線 \(ax+by=c\) に点 \(Q(x_0,\ y_0)\) を代入すると、
$$
ax_0+by_0-c
$$
という値が出てきます。点 \(Q\) が直線上にあれば、
$$
ax_0+by_0-c=0
$$
です。
つまり、この値は点が直線からどれだけ「ずれているか」と関係しています。ただし、この値そのものは距離ではありません。法線ベクトルの長さによって値が変わるからです。
そこで、\(\sqrt{a^2+b^2}\) で割ることで、法線ベクトルの長さによる影響を取り除きます。すると、本当の距離になります。
3次元の \(ax_0+by_0+cz_0-d\) についても同じです。このように考えると、距離の公式の分子と分母には、それぞれきちんとした意味があることが分かります。
10.絶対値はなぜ必要なのか?
距離の公式には絶対値があります。これは、点が直線や平面のどちら側にあるかによって、内積の符号が変わるからです。
たとえば、法線ベクトルが向いている側に点があれば内積は正になり、その反対側にあれば負になることがあります。しかし、距離として知りたいのは「どちら側にあるか」ではなく、「どれだけ離れているか」です。
そのため、
$$
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
$$
と絶対値をとります。
逆にいえば、絶対値を外した値にはどちら側にあるかという情報も残っています。距離を求めるときにはその向きの情報を取り除き、長さだけを取り出しているわけです。
11.結局、距離の公式は「内積の公式」だった
高校数学では、直線を \(ax+by=c\) と表したとき、
$$
d
=
\frac{|ax_0+by_0-c|}
{\sqrt{a^2+b^2}}
$$
という公式を、そのまま覚えた人も多いかもしれません。しかし、ベクトルを使って考えると、その正体はかなりシンプルです。
まず、点から直線や平面までの最短距離は垂直方向に測ります。垂直方向は法線ベクトルが教えてくれます。そして、あるベクトルが法線方向にどれだけ伸びているかは、内積による射影で求めることができます。
つまり、
最短距離 → 垂直 → 法線ベクトル → 射影 → 内積
という1本の流れで、距離の公式が出てきているわけです。
点と直線・平面の距離の公式は、暗記するための別の公式ではなく、「内積で法線方向の成分を取り出す」という考え方そのものです。
まとめ
点と直線・平面の距離とは、その点から直線や平面へ垂直に測った最短距離です。直線や平面上の1点を \(\boldsymbol{p}\)、外側にある点を \(\boldsymbol{q}\)、法線ベクトルを \(\boldsymbol{n}\) とすると、その距離は、
$$
d
=
\frac{
\left|
\boldsymbol{n}\cdot(\boldsymbol{q}-\boldsymbol{p})
\right|
}{
|\boldsymbol{n}|
}
$$
と表すことができます。これは、\(\boldsymbol{q}-\boldsymbol{p}\) のうち、法線ベクトルの方向を向いている成分だけを内積によって取り出しているからです。
2次元の直線 \(ax+by=c\) なら、
$$
d
=
\frac{|ax_0+by_0-c|}
{\sqrt{a^2+b^2}}
$$
となります。一方、3次元の平面 \(ax+by+cz=d\) なら、
$$
d
=
\frac{|ax_0+by_0+cz_0-d|}
{\sqrt{a^2+b^2+c^2}}
$$
となります。
一見すると別々の公式ですが、その背後にある考え方は同じです。
「最短距離は法線方向に測る。そして法線方向の成分は内積で取り出せる」
ということです。
これまで見てきた内積、方向ベクトル、ベクトル方程式、法線ベクトルは、それぞれ別々の話ではありません。法線ベクトルによって「垂直な方向」が分かり、内積によってその方向への成分を取り出すことで、今度は距離まで求められるようになります。
では、複数の点が同じ直線上にあるか、同じ平面上にあるかを調べたい場合は、どうすればよいのでしょうか。
実は、ここではこれまでとは少し違う視点から、行列式を使って判定することができます。次の記事では、ベクトルと行列式を結びつけながら、「同一直線上」「同一平面上」という条件がなぜ行列式で判定できるのかを見ていきます。
直線・平面と行列式|「同一直線上」「同一平面上」を行列式で判定する

そう感じた人には、ベクトル方程式や法線ベクトルを基礎から解説してくれる本もおすすめです。



コメント