2つの直線の交点

line-line-intersection.png

直線

(1)
\begin{equation} L=P+td \end{equation}

dは方向ベクトル
tは変数
Pは直線上にある点
こういう想定である

(2)
\begin{align} P_i=P_1+t_1 d_1\\ P_i=P_2+t_2 d_2 \end{align}

P_iが求めたい交点である。

まず、d1とd2の内積を求めて、
1か-1だったら無理そうだよね、
2つの直線のなす角が0か180度ってことは平行ってことだ。
しかし、一般的には
方向ベクトル同士が外積=0だったら平行の方が使用されている。
なぜなら

(3)
\begin{align} |a||b|sin\theta \end{align}

外積の長さは上記のようにsinθが入っているので、sinθ=0だとちょうど0度か180度になって都合が良いからだ。

実例で学ぶゲーム3D数学によると、
陰関数形式で書かれた式から連立一次方程式を解くといいって書いてあるけど。

(4)
\begin{align} a_1 x+b_1 y=d_1\\ a_2 x+b_2 y=d_2 \end{align}

連立一次方程式を解くには

(5)
\begin{align} x=\frac{b_2 d_1-b_1d_2}{a_1b_2 - a_2b_1}\\ y=\frac{a_1 d_2-a_2d_1}{a_1b_2 - a_2b_1} \end{align}

参考にした書籍


line

サポートサイト Wikidot.com line