- ベストアンサー
ベクトルを使って交点を表現したいのですが。
ベクトルを使って交点を表現したいのですが。 ■前提 2本の直線 L1, L2 が、それぞれ、方向ベクトル a1, a2 と 位置ベクトル p1, p2 で与えられているとします。 つまり、t1, t2 をスカラーのパラメータとして L1 上の点: a1 × t1 + p1 L2 上の点: a2 × t2 + p2 と表せます。 ■問題 L1 と L2 の交点 v を a1, a2, p1, p2 の4つのベクトルの式で 表現したいです。 できるだけ簡潔な式で示していただければありがたく思います。 (自分では非常に汚い式になってしまいご質問しました。) よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
L1, L2 が交わることから、a1, a2 は一次独立であり、 よって、a1, a2 を基底として、v を v = (x1)a1 + (x2)a2 …[1] と表すことができる。 x1, x2 はスカラーである。 x1, x2 の値は、[1] の両辺と a1, a2 の内積をとって、 v・a1 = (x1)a1・a1 + (x2)a2・a1 …[2] v・a2 = (x1)a1・a2 + (x2)a2・a2 …[3] を x1, x2 の連立一次方程式として解けば求められる。 そのためには、v・a1, v・a2 の値が要る。 v は L1, L2 の交点だから v = (t1)a1 + p1 = (t2)a2 + p2 …[4] と書けるが、 [4] の各辺と a1, a2 の内積をとって、 v・a1 = (t1)(a1・a1) + (p1・a1) = (t2)(a2・a1) + (p2・a1) …[5] v・a2 = (t1)(a1・a2) + (p1・a2) = (t2)(a2・a2) + (p2・a2) …[6] となる。 [5][6] の右側のイコールを t1, t2 の連立一次方程式として解いて、 得られた t1 を [5][6] の左側のイコールへ代入すれば、 v・a1, v・a2 が、a1, a2, p1, p2 の式で表される。 その値を [2][3] へ代入して、x1, x2 を求め、[1] へ代入すれば 完了。 非常に汚い式? 非常に長いが、味わいある美しい式が出てくるよ。 t1 = { (a2・a2)(p1・a1) - (a2・a2)(p2・a1) - (a1・a2)(p1・a2) + (a1・a2)(p2・a2) } / { (a1・a1)(a2・a2) - (a1・a2)^2 } t2 = { (a1・a2)(p1・a1) - (a1・a2)(p2・a1) - (a1・a1)(p1・a2) + (a1・a1)(p2・a2) } / { (a1・a1)(a2・a2) - (a1・a2)^2 } x1 = { (t1)(a2・a2)(a1・a1) - (t2)(a1・a2)(a2・a2) + (a2・a2)(p1・a1) - (a1・a2)(p2・a2) } / { (a1・a1)(a2・a2) - (a1・a2)^2 } x2 = {-(t1)(a1・a2)(a1・a1) + (t2)(a1・a1)(a2・a2) - (a1・a2)(p1・a1) + (a1・a1)(p2・a2) } / { (a1・a1)(a2・a2) - (a1・a2)^2 } これを [1] へ。
その他の回答 (1)
- naniwacchi
- ベストアンサー率47% (942/1970)
こんばんわ。 積の記号に「×」を使うと、ベクトルの「外積」を表すことになるので使わない方がいいですね。 2直線の交点から与えられる(決まる)値は、スカラーパラメータである t1と t2です。 これらは「直線上のどこにいるか」を表しているものです。 そして、満たすべき式は t1* a1→+ p1→= t2* a2→+ p2→ となります。 条件となる式はこれだけです。 2つの未知数(t1と t2)に対して、式は 1つ・・・ではありません。 上記の式に現れる 4つのベクトル a1→, a2→, p1→, p2→を 1次独立な 2つのベクトルを用いて表し、係数比較することで t1, t2を決定できます。 そして、「1次独立な 2つのベクトル」の一番簡単なものは (1, 0)と (0, 1)です。 つまりは、成分計算をするということです。
お礼
ご回答ありがとうございます。 この方針で、実際に解を示していただいたのが No.2 の方の回答と 理解いたしました。 見通しをしめしていただきまして、わかりやすくなりました。
お礼
ありがとうございます! 大変なお手間を掛けていただいて恐縮です。 「汚い/美しい」かどうかは 簡潔 とは別の話ですね。 式は長いですが、対称性がいろいろなのところにあって、 本当に興味深いですね。 質問を書く際に書き漏れがあって申し訳ありませんが、 方向ベクトル a1, a2 の大きさは1と仮定していました。 そのため、もう少し簡潔になりそうです。
補足
方向ベクトル a1, a2 の大きさを1として、 ご回答いただいた式を整理したところ、 a12 = (a1・a2) と置いて、 x1 = ( 1 - a12^2 ) { (p2・a1) - a12 (p2・a2) } x2 = ( 1 - a12^2 ) { (p1・a2) - a12 (p1・a1) } となりました。 本当に助かりました。 v も求めてみます。