Appendix 直線/平面のベクトル表現について
ここでは、直線、平面などのベクトル表示について、簡単に解説します。
Appendix A. 直線のベクトル表示
直線は以下のいずれかによって決定されます:
-
(A.1) 二点
,
(二点を通る直線)
-
(A.2) 一点
と、直線の向かう方向
直線上の任意の点
をベクトルで表すと、
-
(A.1)
-
(A.2)
となります(tは任意の実数)。
今回のように、直線が
を基点とした「向き」を持った光線の場合は、
が、光線の進む範囲になります。
プログラムでは、光線の初期化で(A.1)の定義を使い、光線の反射で(A.2)の定義を使いました。
Appendix B. 平面のベクトル表示
平面は、以下のいずれかで決定されます:
-
(B.1) 三点
,
,
(三点を通る平面)
-
(B.2) 平面上の一点
と、平面の法線ベクトル
(B.1)の場合、法線ベクトル
は、外積xを使って、
と定義されます。
プログラムでは長さを調整して、法線ベクトルを単位ベクトル化しておきました(
)。
平面上の任意の点
は、以下の式を満たすものになります:

プログラムでは、鏡の定義に(B.1)を使いました。
Appendix C. 直線と平面の交点
直線と平面の交点は、(A),(B)を使って、それぞれベクトル表示しておき、これらを
について解くことで得られます(交点=直線と平面の両方に属する点)。
交点を
として、
を具体的に書くと、
と、なります。
Appendix D. 直線の反射
直線の反射では、入射ベクトル(
)、法線ベクトル(
)、反射ベクトル(
)が、菱形を形作ることが知られています(下図参照)。
これを、条件式であらわすと、
-
-
(
は定数)
となります。これを解くと、

となります(ただし、
は単位行列)。つまり、
とすると、反射方向
は行列
によって定義される線形変換
になっていることが分かります。

(二点を通る直線)
,
,
(三点を通る平面)
(
は定数)