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. 直線の反射
直線の反射では、入射ベクトル()、法線ベクトル()、反射ベクトル()が、菱形を形作ることが知られています(下図参照)。
これを、条件式であらわすと、
- (は定数)
となります。これを解くと、
となります(ただし、は単位行列)。つまり、とすると、反射方向は行列によって定義される線形変換になっていることが分かります。