2 つの平面があり、交点は線です。線は、点とベクトルによって定義されます。
ベクトルを取得するには、平面の法線ベクトルの外積を実行できます。
Ax + By + Cz = D has normal vector <A,B,C>
Ex + Fy + Gz = H has normal vector <E,F,G>
外積は
<BG-CF,-AG+CE, AF-BE>
外積が の場合<0,0,0>
、平面は平行で、直線は存在しません。
次に、交点で点 (a、b、c) を見つけます (元の 2 つの方程式を解くことによって)。
Ax + By + Cz = D
Ex + Fy + Gz = H
そうするために、それがゼロであると仮定することができますz
。次に、かどうかを確認します(A*F-E*B) != 0
。これが true の場合、次のように評価しx,y
ます。
x = (D*F-B*H)/(A*F-E*B)
y = (E*D-A*H)/(E*B-A*F)
それ以外の場合は、チェックしてください(A*G-E*C) != 0
。もしそうなら、あなたは知っています
x = (D*G-C*H)/(A*G-E*C)
z = (E*D-A*H)/(E*C-A*G)
それ以外の場合は、チェックしてください(B*G-C*F) != 0
。もしそうなら、あなたは知っています
y = (D*G-C*H)/(B*G-C*F)
z = (B*H-D*F)/(B*G-C*F)
それからあなたはラインを持っています!
x = a + (BG-CF)t
y = b + (CE-AG)t
z = c + (AF-BE)t
パラメータはどこにt
ありますか。選択したものについてt
、(x,y,z) は目的の線上の点になります。