法線ベクトルという言葉は、大学数学・線形代数・微分幾何学・3DCG・物理学など多くの分野で登場する重要な概念です。
しかし「法線ベクトルとは何か」「通常のベクトルとどう違うのか」「どのような場面で使われるのか」について、わかりやすく説明された資料を見つけにくいと感じている方もいるでしょう。
法線ベクトルは直線や平面に対して垂直(直交)に立つベクトルであり、その性質が多くの数学的・物理的・工学的な計算や理論の基礎を成しています。
この記事では、法線ベクトルとは何かという定義から始め、数学的な意味と性質・求め方・平面の方程式との関係・外積との関係・3次元空間での応用まで、段階的にわかりやすく解説していきます。
法線ベクトルを基礎からしっかりと理解したい方は、ぜひ最後までお読みください。
法線ベクトルとは「平面や直線に対して垂直なベクトル」のことである!
それではまず、法線ベクトルの定義と基本概念についてわかりやすく解説していきます。
法線ベクトルの定義と基本概念
法線ベクトル(Normal Vector)とは、ある直線・平面・曲面などの幾何学的対象に対して垂直(直交)に立つベクトルのことです。
「法線」という言葉の「法」は「垂直」という意味を持ち、英語の”normal”も「垂直の」という意味から来ています。
たとえば2次元平面上の直線に対しては、その直線の方向ベクトルに垂直なベクトルが法線ベクトルです。
3次元空間上の平面に対しては、その平面内のあらゆるベクトルに垂直なベクトルが法線ベクトルとなります。
法線ベクトルは一意には決まらない場合があります。
たとえば3次元の平面に対する法線ベクトルは、大きさや向きが異なる無数のベクトルが存在しますが、いずれも同じ直線方向を向いています(互いに平行な関係にあります)。
実用上は大きさ(長さ)を1に正規化した「単位法線ベクトル(Unit Normal Vector)」が頻繁に使われます。
単位法線ベクトルにより向きの情報のみを切り出すことができ、計算がシンプルになります。
法線ベクトルと方向ベクトルの違い
法線ベクトルを理解する上で、しばしば混同されやすい「方向ベクトル」との違いを明確にすることが大切です。
方向ベクトル(Direction Vector)とは直線や曲線の「進む方向」を表すベクトルであり、直線に沿った(平行な)向きを持ちます。
これに対して法線ベクトルは直線や平面に対して「垂直」な方向を向いています。
2次元の例で考えると、直線 y = 2x + 1 の方向ベクトルは傾きが2であることから (1, 2) と表現できます。
一方、この直線の法線ベクトルは方向ベクトルに垂直なベクトル、すなわち (2, −1)(または(−2, 1))となります。
方向ベクトルと法線ベクトルの内積が0になること(互いに直交すること)が、両者の関係を表す数学的な基本定理です。
方向ベクトルと法線ベクトルの直交関係
方向ベクトル d = (d₁, d₂)
法線ベクトル n = (n₁, n₂)
直交条件:d・n = d₁n₁ + d₂n₂ = 0
例:d = (1, 2) の場合
n₁ × 1 + n₂ × 2 = 0 → n₂ = −n₁/2
n₁ = 2 とおくと n₂ = −1 → n = (2, −1) が法線ベクトルのひとつ
単位法線ベクトルの定義と計算
法線ベクトルを単位ベクトル(大きさ1のベクトル)に正規化したものを「単位法線ベクトル(Unit Normal Vector)」といいます。
単位法線ベクトルは法線ベクトルを自身の大きさ(ノルム)で割ることで求められます。
単位法線ベクトルの計算式
法線ベクトル n = (n₁, n₂, n₃) の場合
ノルム |n| = √(n₁² + n₂² + n₃²)
単位法線ベクトル n̂ = n / |n| = (n₁/|n|, n₂/|n|, n₃/|n|)
例:n = (2, −1, 2) の場合
|n| = √(4 + 1 + 4) = √9 = 3
n̂ = (2/3, −1/3, 2/3)
単位法線ベクトルは3DCGのライティング計算(光の当たり方の計算)・物理学での垂直抗力の計算・微分幾何学での曲面解析など非常に多くの場面で使われます。
大きさが1に統一されているため、異なる法線ベクトル同士の向きの比較や計算が容易になるという利点があります。
法線ベクトルの数学的な性質と意味
続いては、法線ベクトルが持つ重要な数学的性質と意味について確認していきます。
内積と直交の関係
法線ベクトルの最も根本的な性質は「対象の平面・直線上にあるすべてのベクトルと内積が0になる」ということです。
これが「直交する」または「垂直である」の数学的な定義です。
3次元空間上の平面を考えると、その平面内に無数のベクトルが存在します。
法線ベクトル n はこれらすべてのベクトル v に対して n・v = 0 という関係を満たします。
内積が0という条件は、2つのベクトルのなす角が90度(直角)であることと同値です。
この内積ゼロの条件こそが「垂直性」の数学的な定義であり、法線ベクトルを用いた多くの計算の基盤となっています。
また、法線ベクトルを使った内積計算は、平面と点との距離の算出・光の反射角の計算・ベクトルの投影など、幾何学的な計算を代数的に処理するための強力なツールです。
法線ベクトルと平面方程式の関係
3次元空間における平面の方程式は法線ベクトルを使って自然に表現できます。
平面上の1点を P₀ = (x₀, y₀, z₀)、その平面の法線ベクトルを n = (a, b, c) とすると、平面上の任意の点 P = (x, y, z) に対してベクトル P₀P = (x − x₀, y − y₀, z − z₀) は必ず法線ベクトルと垂直になります。
この条件から平面の方程式は次のように導かれます。
法線ベクトルから平面の方程式を導く
法線ベクトル n = (a, b, c)、通過点 P₀ = (x₀, y₀, z₀)
n・(P − P₀) = 0
a(x − x₀) + b(y − y₀) + c(z − z₀) = 0
展開すると:ax + by + cz = ax₀ + by₀ + cz₀
右辺をdとおくと:ax + by + cz = d(平面の一般方程式)
この式から逆に、平面の方程式 ax + by + cz = d が与えられれば法線ベクトルは (a, b, c) と読み取れる
この関係は非常に重要であり、「平面の方程式 ax + by + cz = d において、係数 (a, b, c) がその平面の法線ベクトルを表す」ということを意味します。
これを理解しておくと、平面の方程式を見ただけで法線ベクトルを瞬時に読み取ることができます。
法線ベクトルと曲線・曲面での意味
法線ベクトルの概念は直線や平面だけでなく、曲線や曲面にも拡張されます。
曲線上の1点における法線ベクトルは、その点での接線ベクトル(接線の方向ベクトル)に垂直なベクトルです。
2次元曲線の場合、曲線の微分(接線の傾き)から接線ベクトルを求め、それに垂直なベクトルを計算することで法線ベクトルが得られます。
曲面の場合は、その点を通る2つの独立した接線ベクトルの外積を計算することで曲面の法線ベクトルを求めることができます。
この曲面の法線ベクトルは3DCGのシェーディング計算において非常に重要な役割を担っており、各ポリゴンや各頂点の法線ベクトルを正確に計算することで、光の反射を自然に表現したリアルなレンダリングが実現されます。
平面における法線ベクトルの具体的な求め方
続いては、2次元・3次元のそれぞれで法線ベクトルを具体的に求める方法を確認していきます。
2次元平面における直線の法線ベクトル
2次元平面上の直線の法線ベクトルを求める方法は、直線の表現形式によって異なります。
直線の方程式が「ax + by = c」の形で与えられている場合、法線ベクトルは係数ベクトル (a, b) となります。
たとえば直線 3x + 4y = 12 の法線ベクトルは (3, 4) です。
直線の方程式が「y = mx + n」の傾き切片形式で与えられている場合は、まず一般形 mx − y + n = 0 に変換し、係数 (m, −1) を法線ベクトルとして読み取ります。
例として y = 2x + 3 を考えると、一般形は 2x − y + 3 = 0 なので法線ベクトルは (2, −1) となります。
また、方向ベクトル (d₁, d₂) が与えられている場合は、法線ベクトルは (d₂, −d₁) または (−d₂, d₁) として簡単に求められます。
3次元空間における平面の法線ベクトル
3次元空間における平面の法線ベクトルを求める方法としては主に以下の2つのアプローチがあります。
第一に「平面の方程式から直接読み取る方法」です。
平面の一般方程式 ax + by + cz = d が与えられている場合、係数 (a, b, c) がそのまま法線ベクトルになります。
たとえば平面 2x − 3y + z = 5 の法線ベクトルは (2, −3, 1) です。
第二に「平面上の2つのベクトルの外積を計算する方法」です。
平面上に存在する2本の線形独立なベクトル a と b が与えられている場合、外積 a × b がその平面の法線ベクトルになります。
外積の計算方法については次の章で詳しく説明します。
3点が与えられた場合の法線ベクトルの求め方
3次元空間における3点 P₁、P₂、P₃ が与えられ、その3点を通る平面の法線ベクトルを求めるケースは非常に頻繁に登場します。
3点から法線ベクトルを求める手順
3点 P₁ = (1, 0, 0)、P₂ = (0, 2, 0)、P₃ = (0, 0, 3) の場合
①P₁からP₂へのベクトル a = P₂ − P₁ = (−1, 2, 0)
②P₁からP₃へのベクトル b = P₃ − P₁ = (−1, 0, 3)
③外積 n = a × b を計算
n = (2×3 − 0×0, 0×(−1) − (−1)×3, (−1)×0 − 2×(−1))
n = (6, 3, 2)
④この平面の法線ベクトルは (6, 3, 2)
⑤平面の方程式:6(x−1) + 3(y−0) + 2(z−0) = 0 → 6x + 3y + 2z = 6
このように3点が与えられた場合は、2本のベクトルを作って外積を計算するという手順が基本となります。
外積を使った3次元法線ベクトルの求め方
続いては、3次元の法線ベクトルを求める上で最も重要な手法である外積(ベクトル積)について確認していきます。
外積の定義と計算方法
外積(Cross Product、ベクトル積)とは、3次元空間において2本のベクトルから新たなベクトルを生成する演算であり、得られる結果ベクトルは元の2本のベクトルの両方に対して垂直になるという重要な性質を持っています。
この「両方に垂直なベクトルを生成する」という性質こそが、外積を法線ベクトルの計算に使える根拠です。
2本のベクトル a = (a₁, a₂, a₃) と b = (b₁, b₂, b₃) の外積は行列式の展開によって計算されます。
外積の計算式(行列式展開)
a × b = (a₂b₃ − a₃b₂, a₃b₁ − a₁b₃, a₁b₂ − a₂b₁)
各成分の計算
x成分:a₂b₃ − a₃b₂
y成分:a₃b₁ − a₁b₃
z成分:a₁b₂ − a₂b₁
計算例:a = (1, 2, 3)、b = (4, 5, 6)
x成分:2×6 − 3×5 = 12 − 15 = −3
y成分:3×4 − 1×6 = 12 − 6 = 6
z成分:1×5 − 2×4 = 5 − 8 = −3
a × b = (−3, 6, −3)
外積の大きさは2本のベクトルが張る平行四辺形の面積に等しく、方向は右手の法則(右手の指をaからbへ曲げたときに親指が向く方向)に従います。
外積の重要な性質と注意点
外積にはいくつかの重要な性質があります。
まず「反交換性」として、a × b = −(b × a) が成り立ちます。
つまり外積は計算する順序を入れ替えると符号(向き)が反転します。
これは法線ベクトルの向きが2通りある(平面の表側と裏側)という事実に対応しています。
次に「2本のベクトルが平行な場合」は外積がゼロベクトルになります。
平行なベクトル同士では張る平行四辺形の面積がゼロになるためです。
この場合は法線ベクトルを定義できず、計算上の注意が必要です。
また外積は3次元空間特有の演算であり、2次元では外積を同じように定義することはできません(スカラー値として定義する拡張形式は存在します)。
外積を使った法線ベクトルの計算例
平面上の2本のベクトルから外積を使って法線ベクトルを求める具体的な例を見てみましょう。
平面上のベクトルとして a = (3, 0, −1) と b = (1, 2, 4) が与えられた場合の法線ベクトルを求めます。
外積による法線ベクトルの計算例
a = (3, 0, −1)、b = (1, 2, 4)
x成分:0×4 − (−1)×2 = 0 + 2 = 2
y成分:(−1)×1 − 3×4 = −1 − 12 = −13
z成分:3×2 − 0×1 = 6 − 0 = 6
法線ベクトル n = a × b = (2, −13, 6)
確認:a・n = 3×2 + 0×(−13) + (−1)×6 = 6 + 0 − 6 = 0 ✓
確認:b・n = 1×2 + 2×(−13) + 4×6 = 2 − 26 + 24 = 0 ✓
内積がともに0であることから、n は a と b の両方に垂直であることが確認できる
法線ベクトルの応用分野とその重要性
続いては、法線ベクトルがどのような分野でどのように活用されているかを確認していきます。
3DCGとゲームグラフィックスでの法線ベクトル
法線ベクトルは3DCGとゲームグラフィックスの分野において最も重要な概念のひとつです。
3Dモデルの各ポリゴン(三角形のポリゴン面)や各頂点に法線ベクトルが定義されており、この法線ベクトルを使ってライティング(光源計算)が行われます。
光源の方向と面の法線ベクトルの内積を計算することで、その面がどの程度光を受けているかを数値化でき、陰影の自然な表現が実現されます。
また「ノーマルマッピング(法線マッピング)」という技術では、平坦なポリゴンの表面に法線情報をテクスチャとして記録し(ノーマルマップ)、レンダリング時にその法線情報を使って光計算を行うことで、ポリゴン数を増やさずにでこぼこ感や細部のディテールを表現できます。
物理学での法線ベクトルの活用
物理学では法線ベクトルが多くの重要な計算に登場します。
最もよく知られている応用は「垂直抗力(Normal Force)」です。
物体が面の上に置かれているとき、面が物体に与える力は面の法線方向(面に垂直な方向)を向いており、この力を垂直抗力といいます。
光の反射・屈折においても法線ベクトルが基本的な役割を果たします。
「入射角 = 反射角」という反射の法則は、入射光ベクトルと反射光ベクトルが鏡面の法線ベクトルを挟んで対称であるということを意味しており、この計算に法線ベクトルが不可欠です。
流体力学では流線に対する法線方向の速度成分(垂直成分)の計算に法線ベクトルが使われ、圧力と速度の関係式(ベルヌーイの式)の導出にも活用されています。
工学・土木・CAD分野での活用
工学・土木・CAD分野でも法線ベクトルは多くの場面で重要な役割を担っています。
構造解析では、構造物の面に作用する力を法線成分(面に垂直な成分、圧縮・引張力に対応)と接線成分(面に平行な成分、せん断力に対応)に分解して解析することが基本です。
この分解に法線ベクトルが活用されます。
地形解析・GIS(地理情報システム)では、デジタル標高モデル(DEM)から各点の傾斜方向(最大傾斜の方向)と法線ベクトルを計算することで、斜面の安定性・水の流れ方向・日照条件などの分析が可能となります。
CAD・CAM(コンピュータ支援設計・製造)では、3次元曲面の法線ベクトルを使って加工工具の進行方向の制御・オフセット曲面の生成・干渉チェックなどが行われています。
法線ベクトルが活用される主要な分野をまとめます。
・数学・線形代数:平面の方程式・ベクトル方程式・外積の応用
・3DCG・ゲーム開発:ライティング計算・ノーマルマッピング・衝突判定
・物理学:垂直抗力・光の反射・屈折・流体力学
・工学・土木:構造解析・地形解析・CAD・CAM
法線ベクトルは「垂直方向」という本質的な概念を数学的に表現したものであり、その応用は想像以上に広いといえるでしょう。
まとめ
法線ベクトルとは、ある直線・平面・曲面に対して垂直(直交)に立つベクトルであり、対象上のあらゆるベクトルと内積が0になるという性質を持っています。
平面の方程式 ax + by + cz = d において係数 (a, b, c) が法線ベクトルを直接表しており、逆に法線ベクトルと通過点から平面の方程式を導くことも可能です。
3次元空間では、平面上の2本のベクトルの外積を計算することで法線ベクトルを求めることができ、外積の結果は両方のベクトルに垂直になるという性質を持っています。
大きさを1に正規化した単位法線ベクトルは、3DCGのライティング計算・物理学の垂直抗力・工学の構造解析など実用場面で広く活用されています。
法線ベクトルの本質である「垂直性」を深く理解することが、線形代数・微分幾何・物理学・工学など幅広い分野の学習において非常に重要な基盤となるでしょう。