2本の直線が交わるための必要条件 は、それらが同一平面上にあること、 つまりねじれ直線ではないことです。この条件を満たすことは、一方の直線上の2点と他方の直線上の2点を頂点とする正四面体が、体積 が ゼロという意味で退化して いることと同等です。この条件の代数形式については、「ねじれ直線」§ 「ねじれの判定」を 参照してください。
各直線上に2つの点が与えられた場合 まず、 2次元空間における2つの直線L1とL2の交点を考えます。直線L1 は 2 つ の異なる点 ( x1 , y1 )と ( x2 , y2 )で 定義 さ れ 、直線L2 は 2 つ の異なる 点 ( x3 , y3 ) と( x4 , y4 ) で定義されます。[ 6 ]
直線L 1 とL 2 の交点Pは、 行列式 を用いて定義できます。
P x = | | x 1 y 1 x 2 y 2 | | x 1 1 x 2 1 | | x 3 y 3 x 4 y 4 | | x 3 1 x 4 1 | | | | x 1 1 x 2 1 | | y 1 1 y 2 1 | | x 3 1 x 4 1 | | y 3 1 y 4 1 | | P y = | | x 1 y 1 x 2 y 2 | | y 1 1 y 2 1 | | x 3 y 3 x 4 y 4 | | y 3 1 y 4 1 | | | | x 1 1 x 2 1 | | y 1 1 y 2 1 | | x 3 1 x 4 1 | | y 3 1 y 4 1 | | {\displaystyle P_{x}={\frac {\begin{vmatrix}{\begin{vmatrix}x_{1}&y_{1}\\x_{2}&y_{2}\end{vmatrix}}&{\begin{vmatrix}x_{1}&1\\x_{2}&1\end{vmatrix}}\\\\{\begin{vmatrix}x_{3}&y_{3}\\x_{4}&y_{4}\end{vmatrix}}&{\begin{vmatrix}x_{3}&1\\x_{4}&1\end{vmatrix}}\end{vmatrix}}{\begin{vmatrix}{\begin{vmatrix}x_{1}&1\\x_{2}&1\end{vmatrix}}&{\begin{vmatrix}y_{1}&1\\y_{2}&1\end{vmatrix}}\\\\{\begin{vmatrix}x_{3}&1\\x_{4}&1\end{vmatrix}}&{\begin{vmatrix}y_{3}&1\\y_{4}&1\end{vmatrix}}\end{vmatrix}}}\,\!\qquad P_{y}={\frac {\begin{vmatrix}{\begin{vmatrix}x_{1}&y_{1}\\x_{2}&y_{2}\end{vmatrix}}&{\begin{vmatrix}y_{1}&1\\y_{2}&1\end{vmatrix}}\\\\{\begin{vmatrix}x_{3}&y_{3}\\x_{4}&y_{4}\end{vmatrix}}&{\begin{vmatrix}y_{3}&1\\y_{4}&1\end{vmatrix}}\end{vmatrix}}{\begin{vmatrix}{\begin{vmatrix}x_{1}&1\\x_{2}&1\end{vmatrix}}&{\begin{vmatrix}y_{1}&1\\y_{2}&1\end{vmatrix}}\\\\{\begin{vmatrix}x_{3}&1\\x_{4}&1\end{vmatrix}}&{\begin{vmatrix}y_{3}&1\\y_{4}&1\end{vmatrix}}\end{vmatrix}}}\,\!} 行列式は次のように書き出すことができます。
P x = ( x 1 y 2 − y 1 x 2 ) ( x 3 − x 4 ) − ( x 1 − x 2 ) ( x 3 y 4 − y 3 x 4 ) ( x 1 − x 2 ) ( y 3 − y 4 ) − ( y 1 − y 2 ) ( x 3 − x 4 ) P y = ( x 1 y 2 − y 1 x 2 ) ( y 3 − y 4 ) − ( y 1 − y 2 ) ( x 3 y 4 − y 3 x 4 ) ( x 1 − x 2 ) ( y 3 − y 4 ) − ( y 1 − y 2 ) ( x 3 − x 4 ) {\displaystyle {\begin{aligned}P_{x}&={\frac {(x_{1}y_{2}-y_{1}x_{2})(x_{3}-x_{4})-(x_{1}-x_{2})(x_{3}y_{4}-y_{3}x_{4})}{(x_{1}-x_{2})(y_{3}-y_{4})-(y_{1}-y_{2})(x_{3}-x_{4})}}\\[4px]P_{y}&={\frac {(x_{1}y_{2}-y_{1}x_{2})(y_{3}-y_{4})-(y_{1}-y_{2})(x_{3}y_{4}-y_{3}x_{4})}{(x_{1}-x_{2})(y_{3}-y_{4})-(y_{1}-y_{2})(x_{3}-x_{4})}}\end{aligned}}} 2つの線が平行または一致する場合、分母はゼロになります。
各線分上に2つの点が与えられた場合 上記の交点は、点間の線分 ではなく、点によって定義される無限に長い直線に関するものであり、2つの線分のどちらにも含まれない交点を生成する可能性があります。線分に対する交点の位置を見つけるために、直線L1 とL2 を 1次ベジェ パラメータで定義することができます。
L 1 = [ x 1 y 1 ] + t [ x 2 − x 1 y 2 − y 1 ] 、 L 2 = [ x 3 y 3 ] + u [ x 4 − x 3 y 4 − y 3 ] {\displaystyle L_{1}={\begin{bmatrix}x_{1}\\y_{1}\end{bmatrix}}+t{\begin{bmatrix}x_{2}-x_{1}\\y_{2}-y_{1}\end{bmatrix}},\qquad L_{2}={\begin{bmatrix}x_{3}\\y_{3}\end{bmatrix}}+u{\begin{bmatrix}x_{4}-x_{3}\\y_{4}-y_{3}\end{bmatrix}}} (ここで、t とu は実数である)。直線の交点は、tまたは uの次の値のいずれかで求められる。
t = | x 1 − x 3 x 3 − x 4 y 1 − y 3 y 3 − y 4 | | x 1 − x 2 x 3 − x 4 y 1 − y 2 y 3 − y 4 | = ( x 1 − x 3 ) ( y 3 − y 4 ) − ( y 1 − y 3 ) ( x 3 − x 4 ) ( x 1 − x 2 ) ( y 3 − y 4 ) − ( y 1 − y 2 ) ( x 3 − x 4 ) {\displaystyle t={\frac {\begin{vmatrix}x_{1}-x_{3}&x_{3}-x_{4}\\y_{1}-y_{3}&y_{3}-y_{4}\end{vmatrix}}{\begin{vmatrix}x_{1}-x_{2}&x_{3}-x_{4}\\y_{1}-y_{2}&y_{3}-y_{4}\end{vmatrix}}}={\frac {(x_{1}-x_{3})(y_{3}-y_{4})-(y_{1}-y_{3})(x_{3}-x_{4})}{(x_{1}-x_{2})(y_{3}-y_{4})-(y_{1}-y_{2})(x_{3}-x_{4})}}} そして
u = − | x 1 − x 2 x 1 − x 3 y 1 − y 2 y 1 − y 3 | | x 1 − x 2 x 3 − x 4 y 1 − y 2 y 3 − y 4 | = − ( x 1 − x 2 ) ( y 1 − y 3 ) − ( y 1 − y 2 ) ( x 1 − x 3 ) ( x 1 − x 2 ) ( y 3 − y 4 ) − ( y 1 − y 2 ) ( x 3 − x 4 ) 、 {\displaystyle u=-{\frac {\begin{vmatrix}x_{1}-x_{2}&x_{1}-x_{3}\\y_{1}-y_{2}&y_{1}-y_{3}\end{vmatrix}}{\begin{vmatrix}x_{1}-x_{2}&x_{3}-x_{4}\\y_{1}-y_{2}&y_{3}-y_{4}\end{vmatrix}}}=-{\frac {(x_{1}-x_{2})(y_{1}-y_{3})-(y_{1}-y_{2})(x_{1}-x_{3})}{(x_{1}-x_{2})(y_{3}-y_{4})-(y_{1}-y_{2})(x_{3}-x_{4})}},} と
( P x 、 P y ) = ( x 1 + t ( x 2 − x 1 ) 、 y 1 + t ( y 2 − y 1 ) ) または ( P x 、 P y ) = ( x 3 + u ( x 4 − x 3 ) 、 y 3 + u ( y 4 − y 3 ) ) {\displaystyle (P_{x},P_{y})={\bigl (}x_{1}+t(x_{2}-x_{1}),\;y_{1}+t(y_{2}-y_{1}){\bigr )}\quad {\text{or}}\quad (P_{x},P_{y})={\bigl (}x_{3}+u(x_{4}-x_{3}),\;y_{3}+u(y_{4}-y_{3}){\bigr )}} 0 ≤ t ≤ 1 かつ0 ≤ u ≤ 1 の場合、交点が存在します。0 ≤ t ≤ 1 の場合、交点は最初の線分内にあり、 0 ≤ u ≤ 1 の場合、交点は2番目の線分内にあります。これらの不等式は除算を必要とせずにテストできるため、正確な交点を計算する前に、任意の線分交点の存在を迅速に判断できます。[ 7 ]
2 つの線分が x 軸を共有し、x 2 = x 1 + 1 {\displaystyle x_{2}=x_{1}+1} 、t {\displaystyle t} そしてu {\displaystyle u} 簡略化して t = u = y 1 − y 3 y 1 − y 2 − y 3 + y 4 、 {\displaystyle t=u={\frac {y_{1}-y_{3}}{y_{1}-y_{2}-y_{3}+y_{4}}},} と ( P x 、 P y ) = ( x 1 + t 、 y 1 + t ( y 2 − y 1 ) ) または ( P x 、 P y ) = ( x 1 + t 、 y 3 + t ( y 4 − y 3 ) ) 。 {\displaystyle (P_{x},P_{y})={\bigl (}x_{1}+t,\;y_{1}+t(y_{2}-y_{1}){\bigr )}\quad {\text{or}}\quad (P_{x},P_{y})={\bigl (}x_{1}+t,\;y_{3}+t(y_{4}-y_{3}){\bigr )}.}
2つの直線の方程式が与えられた 2本の非垂直な直線の交点のx 座標とy座標は、以下の置換と式の変更を用いることで容易に求めることができる。
2 つの直線の方程式がy = ax + c とy = bx + d であるとします。 ここで、 a とb は直線の傾き (勾配)、cと dは直線の y 切片です。2 つの直線が交わる点 (交わる場合) では、両方のy 座標が同じになるため、次の等式が成り立ちます。
1 x + c = b x + d 。 {\displaystyle ax+c=bx+d.} この式を変形してx の値を取り出すことができます。
1 x − b x = d − c 、 {\displaystyle ax-bx=d-c,} など、
x = d − c 1 − b 。 {\displaystyle x={\frac {d-c}{a-b}}.} y 座標を求めるには、 x の値を2つの直線の方程式のいずれかに代入するだけでよい。例えば、最初の方程式に代入すると次のようになる。
y = 1 d − c 1 − b + c 。 {\displaystyle y=a{\frac {d-c}{a-b}}+c.} したがって、交点は
P = ( d − c 1 − b 、 1 d − c 1 − b + c ) 。 {\displaystyle P=\left({\frac {d-c}{a-b}},a{\frac {d-c}{a-b}}+c\right).} a = b の場合、 2 つの直線は平行 で交わりません。ただし、c = d の場合は、直線は一致し、すべての点で交わります。
同次座標を使用する 同次座標 を使用すると、暗黙的に定義された 2 つの直線の交点を非常に簡単に決定できます。 2D では、すべての点は、順序付き 3 つ( x 、y 、w ) として与えられる 3D 点の投影として定義できます。 3D から 2D 座標へのマッピングは( x ′、y ′) = ( x / w 、 y / w )です。 2D 点を ( x 、y 、 1) と定義することで、同次座標に変換できます。
2 次元空間で定義される 2 つの無限直線a 1 x + b 1 y + c 1 = 0 およびa 2 x + b 2 y + c 2 = 0 の交点を求めたいとします。これらの 2 つの直線は、直線座標で U 1 = ( a 1 , b 1 , c 1 ) およびU 2 = ( a 2 , b 2 , c 2 ) と 表すことができます。2 つの直線の交点P ′は、 [ 8 ] で簡単に与えられます。
P ′ = ( 1 p 、 b p 、 c p ) = U 1 × U 2 = ( b 1 c 2 − b 2 c 1 、 1 2 c 1 − 1 1 c 2 、 1 1 b 2 − 1 2 b 1 ) {\displaystyle P'=(a_{p},b_{p},c_{p})=U_{1}\times U_{2}=(b_{1}c_{2}-b_{2}c_{1},a_{2}c_{1}-a_{1}c_{2},a_{1}b_{2}-a_{2}b_{1})} c p = 0 の場合、直線は交差しない。
2行以上 2本の直線の交点は、さらに多くの直線を含むように一般化できる。n本の 直線の交点問題の存在と表現は以下のとおりである。
2次元 2次元空間では、2本以上の直線が1点で交わることはまずありません。交わるかどうか、そして交わる場合はその交点を求めるには、 i 番目の式(i = 1, …, n )を次のように記述します。
[ 1 私 1 1 私 2 ] [ x y ] = b 私 、 {\displaystyle {\begin{bmatrix}a_{i1}&a_{i2}\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}=b_{i},} そしてこれらの式を行列形式に積み重ねて
A w = b 、 {\displaystyle \mathbf {A} \mathbf {w} =\mathbf {b} ,} ここで、n × 2 行列A のi 番目の行は[ a i 1 , a i 2 ] 、w は 2 × 1 ベクトル[ x y ] 、列ベクトルb のi番目の要素は b i です。Aが 独立列を持つ場合、そのランク は 2 です。拡大行列 [ A | b ] のランクも 2 である場合に限り、行列方程式の解が存在し、したがって n 本の直線の交点が存在します。交点が存在する場合、それは次のように与えられます。
w = A g b = ( A T A ) − 1 A T b 、 {\displaystyle \mathbf {w} =\mathbf {A} ^{\mathrm {g} }\mathbf {b} =\left(\mathbf {A} ^{\mathsf {T}}\mathbf {A} \right)^{-1}\mathbf {A} ^{\mathsf {T}}\mathbf {b} ,} ここで、A gは A のムーア・ペンローズ一般化逆行列 です( A は 列フルランクであるため、図に示す形式になります)。あるいは、任意の 2 つの独立した方程式を同時に解くことによって解を求めることもできます。ただし、 A のランクが 1 の場合、拡大行列のランクが 2 であれば解はありませんが、ランクが 1 であればすべての線が一致します。
三次元 上記のアプローチは、容易に3次元に拡張できます。3次元以上の空間では、2本の直線が交わることはまずありません。交わらない非平行な直線のペアは、ねじれ線 と呼ばれます。しかし、もし交点が存在する場合は、次のようにして見つけることができます。
3次元空間では、直線は2つの平面の交点によって表され、それぞれの平面の方程式は次の形式で表される。
[ 1 私 1 1 私 2 1 私 3 ] [ x y z ] = b 私 。 {\displaystyle {\begin{bmatrix}a_{i1}&a_{i2}&a_{i3}\end{bmatrix}}{\begin{bmatrix}x\\y\\z\end{bmatrix}}=b_{i}.} したがって、 n 本の直線の集合は、3次元座標ベクトル w における2n個の 方程式で表すことができる。
A w = b {\displaystyle \mathbf {A} \mathbf {w} =\mathbf {b} } ここで、A は2n × 3 、b は2n ×1 である。これまでと同様に、 Aが フル 列ランクであり、拡大行列[ A | b ] がフル列ランクでない場合のみ、一意の交点が存在する。そして、存在する場合の一意の交点は次のように与えられる。
w = ( A T A ) − 1 A T b 。 {\displaystyle \mathbf {w} =\left(\mathbf {A} ^{\mathsf {T}}\mathbf {A} \right)^{-1}\mathbf {A} ^{\mathsf {T}}\mathbf {b} .}
ねじれ線に最も近い点 PQは、ねじれの位置にある2つの直線ABとCD間の最短距離であり、ABとCDの両方に垂直である。 2次元以上の空間では、通常、最小二乗法の 意味で、2つ以上の直線に互いに最も近い点を見つけることができます。
2次元 2次元の場合、まず、直線i を 直線上の点p i と、その直線に垂直な単位 法線ベクトル n̂ i で表します。つまり、x 1 とx 2 が直線 1 上の点である場合、p 1 = x 1 とし、
n ^ 1 := [ 0 − 1 1 0 ] x 2 − x 1 ‖ x 2 − x 1 ‖ {\displaystyle \mathbf {\hat {n}} _{1}:={\begin{bmatrix}0&-1\\1&0\end{bmatrix}}{\frac {\mathbf {x} _{2}-\mathbf {x} _{1}}{\|\mathbf {x} _{2}-\mathbf {x} _{1}\|}}} これは、直線に沿った単位ベクトルを直角に回転させたものです。
点x から直線( p , n̂ ) までの距離は次のように表される。
d ( x 、 ( p 、 n ^ ) ) = | ( x − p ) ⋅ n ^ | = | ( x − p ) T n ^ | = | n ^ T ( x − p ) | = ( x − p ) T n ^ n ^ T ( x − p ) 。 {\displaystyle d{\bigl (}\mathbf {x} ,(\mathbf {p} ,\mathbf {\hat {n}} ){\bigr )}={\bigl |}(\mathbf {x} -\mathbf {p} )\cdot \mathbf {\hat {n}} {\bigr |}=\left|(\mathbf {x} -\mathbf {p} )^{\mathsf {T}}\mathbf {\hat {n}} \right|=\left|\mathbf {\hat {n}} ^{\mathsf {T}}(\mathbf {x} -\mathbf {p} )\right|={\sqrt {(\mathbf {x} -\mathbf {p} )^{\mathsf {T}}\mathbf {\hat {n}} \mathbf {\hat {n}} ^{\mathsf {T}}(\mathbf {x} -\mathbf {p} )}}.} したがって、点x から直線までの距離の二乗は次のようになります。
d ( x 、 ( p 、 n ^ ) ) 2 = ( x − p ) T ( n ^ n ^ T ) ( x − p ) 。 {\displaystyle d{\bigl (}\mathbf {x} ,(\mathbf {p} ,\mathbf {\hat {n}} ){\bigr )}^{2}=(\mathbf {x} -\mathbf {p} )^{\mathsf {T}}\left(\mathbf {\hat {n}} \mathbf {\hat {n}} ^{\mathsf {T}}\right)(\mathbf {x} -\mathbf {p} ).} 複数の直線までの距離の二乗の合計がコスト関数 である。
E ( x ) = ∑ 私 ( x − p 私 ) T ( n ^ 私 n ^ 私 T ) ( x − p 私 ) 。 {\displaystyle E(\mathbf {x} )=\sum _{i}(\mathbf {x} -\mathbf {p} _{i})^{\mathsf {T}}\left(\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)(\mathbf {x} -\mathbf {p} _{i}).} これは次のように並べ替えることができます。
E ( x ) = ∑ 私 x T n ^ 私 n ^ 私 T x − x T n ^ 私 n ^ 私 T p 私 − p 私 T n ^ 私 n ^ 私 T x + p 私 T n ^ 私 n ^ 私 T p 私 = x T ( ∑ 私 n ^ 私 n ^ 私 T ) x − 2 x T ( ∑ 私 n ^ 私 n ^ 私 T p 私 ) + ∑ 私 p 私 T n ^ 私 n ^ 私 T p 私 。 {\displaystyle {\begin{aligned}E(\mathbf {x} )&=\sum _{i}\mathbf {x} ^{\mathsf {T}}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {x} -\mathbf {x} ^{\mathsf {T}}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}-\mathbf {p} _{i}^{\mathsf {T}}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {x} +\mathbf {p} _{i}^{\mathsf {T}}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}\\&=\mathbf {x} ^{\mathsf {T}}\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\mathbf {x} -2\mathbf {x} ^{\mathsf {T}}\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}\right)+\sum _{i}\mathbf {p} _{i}^{\mathsf {T}}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}.\end{aligned}}} 最小値を求めるには、 x に関して微分し、その結果をゼロベクトルに等しいとおきます。
∂ E ( x ) ∂ x = 0 = 2 ( ∑ 私 n ^ 私 n ^ 私 T ) x − 2 ( ∑ 私 n ^ 私 n ^ 私 T p 私 ) {\displaystyle {\frac {\partial E(\mathbf {x} )}{\partial \mathbf {x} }}={\boldsymbol {0}}=2\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\mathbf {x} -2\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}\right)} それで
( ∑ 私 n ^ 私 n ^ 私 T ) x = ∑ 私 n ^ 私 n ^ 私 T p 私 {\displaystyle \left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\mathbf {x} =\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}} など
x = ( ∑ 私 n ^ 私 n ^ 私 T ) − 1 ( ∑ 私 n ^ 私 n ^ 私 T p 私 ) 。 {\displaystyle \mathbf {x} =\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)^{-1}\left(\sum _{i}\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\mathbf {p} _{i}\right).}
2次元以上の n̂ i は 2 次元を超えると明確に定義されませんが、 n̂ i n̂ i T は、線に沿った方向のゼロ固有値を除いてすべての固有値が 1 である対称 行列 であり、p i と別の点との間の距離のセミノルム を提供し、線までの距離を与えることに注目することで、任意の次元に一般化できます。任意の次元で、v̂ i が i 番目の線に沿った 単位ベクトルである場合、
n ^ 私 n ^ 私 T {\displaystyle \mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}} になる私 − v ^ 私 v ^ 私 T {\displaystyle \mathbf {I} -\mathbf {\hat {v}} _{i}\mathbf {\hat {v}} _{i}^{\mathsf {T}}} ここで、I は単位行列 であり、したがって[ 9 ]
x = ( ∑ 私 私 − v ^ 私 v ^ 私 T ) − 1 ( ∑ 私 ( 私 − v ^ 私 v ^ 私 T ) p 私 ) 。 {\displaystyle x=\left(\sum _{i}\mathbf {I} -\mathbf {\hat {v}} _{i}\mathbf {\hat {v}} _{i}^{\mathsf {T}}\right)^{-1}\left(\sum _{i}\left(\mathbf {I} -\mathbf {\hat {v}} _{i}\mathbf {\hat {v}} _{i}^{\mathsf {T}}\right)\mathbf {p} _{i}\right).}
一般的な導出 一連の直線の交点を求めるには、それらの直線からの距離が最小となる点を計算します。各直線は、原点a i と単位方向ベクトルn̂ i によって定義されます。点p からいずれかの直線までの距離の二乗は、ピタゴラスの定理から与えられます。
d 私 2 = ‖ p − 1 私 ‖ 2 − ( ( p − 1 私 ) T n ^ 私 ) 2 = ( p − 1 私 ) T ( p − 1 私 ) − ( ( p − 1 私 ) T n ^ 私 ) 2 {\displaystyle d_{i}^{2}=\left\|\mathbf {p} -\mathbf {a} _{i}\right\|^{2}-\left(\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}\mathbf {\hat {n}} _{i}\right)^{2}=\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}\left(\mathbf {p} -\mathbf {a} _{i}\right)-\left(\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}\mathbf {\hat {n}} _{i}\right)^{2}} ここで、( p − a i ) T n̂ i は、直線iへの p − a i の射影です。正方形からすべての直線までの距離の合計は
∑ 私 d 私 2 = ∑ 私 ( ( p − 1 私 ) T ( p − 1 私 ) − ( ( p − 1 私 ) T n ^ 私 ) 2 ) {\displaystyle \sum _{i}d_{i}^{2}=\sum _{i}\left({\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}}\left(\mathbf {p} -\mathbf {a} _{i}\right)-{\left(\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}\mathbf {\hat {n}} _{i}\right)^{2}}\right)} この式を最小化するために、 p に関して微分します。
∑ 私 ( 2 ( p − 1 私 ) − 2 ( ( p − 1 私 ) T n ^ 私 ) n ^ 私 ) = 0 {\displaystyle \sum _{i}\left(2\left(\mathbf {p} -\mathbf {a} _{i}\right)-2\left(\left(\mathbf {p} -\mathbf {a} _{i}\right)^{\mathsf {T}}\mathbf {\hat {n}} _{i}\right)\mathbf {\hat {n}} _{i}\right)={\boldsymbol {0}}} ∑ 私 ( p − 1 私 ) = ∑ 私 ( n ^ 私 n ^ 私 T ) ( p − 1 私 ) {\displaystyle \sum _{i}\left(\mathbf {p} -\mathbf {a} _{i}\right)=\sum _{i}\left(\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\left(\mathbf {p} -\mathbf {a} _{i}\right)} その結果、
( ∑ 私 ( 私 − n ^ 私 n ^ 私 T ) ) p = ∑ 私 ( 私 − n ^ 私 n ^ 私 T ) 1 私 {\displaystyle \left(\sum _{i}\left(\mathbf {I} -\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\right)\mathbf {p} =\sum _{i}\left(\mathbf {I} -\mathbf {\hat {n}} _{i}\mathbf {\hat {n}} _{i}^{\mathsf {T}}\right)\mathbf {a} _{i}} ここで、I は単位行列 です。これは行列Sp = C であり、解はp = S + C です。ここで、S +は S の擬似逆行列 です。
非ユークリッド幾何学 左から右へ:ユークリッド幾何学、球面幾何学、双曲幾何学 球面幾何学 では、線は球面の交点として定義される大円[ 10 ]で表されます。 S 2 = { x ∈ R 3 : ‖ x ‖ = R } {\displaystyle S^{2}=\{x\in \mathbb {R} ^{3}:\|x\|=R\}} 原点を通る平面を持つ。[ 2 ]
球面上における2つの大円の交点 単位法線ベクトルを持つ平面上にある2つの大円 n ^ 1 {\displaystyle \mathbf {\hat {n}} _{1}} そしてn ^ 2 {\displaystyle \mathbf {\hat {n}} _{2}} 2 つの対蹠点 で交差し、(正規化を除いて) [ 11 ] [ 12 ]で表すことができる。
x = ± n 1 × n 2 ‖ n 1 × n 2 ‖ {\displaystyle \mathbf {x} =\pm {\frac {\mathbf {n} _{1}\times \mathbf {n} _{2}}{\|\mathbf {n} _{1}\times \mathbf {n} _{2}\|}}}
球面幾何学では、すべての直線のペアは2つの対蹠点で交わるため、平行線は存在しない。[ 13 ]
楕円幾何学 では、空間は対蹠点が同一視された球面幾何学の商空間とみなすことができる。この幾何学では、直線は対蹠点が等価とみなされる大円に対応し、直線のペアはちょうど1点で交わる。[ 2 ] 球面幾何学とは異なり、この同一視によって2つの交点の区別がなくなり、平行線のない有限だが無限の空間が生成される。[ 4 ]
双曲幾何学 では、直線同士の交点挙動はユークリッド幾何学や正曲率幾何学とは異なります。[ 2 ] 直線が与えられた場合ℓ {\displaystyle \ell } そしてポイントP ∉ ℓ {\displaystyle P\not \in \ell } を通る線は無限に多く存在するP {\displaystyle P} 交差しないℓ {\displaystyle \ell } [ 10 ] 2つの直線はちょうど1点で交わる場合もあれば、漸近的に平行な場合、または超平行(共通の垂線と交わらない)になる場合もある。この挙動は一定の負のガウス曲率を反映している。 K < 0 {\displaystyle K<0} 双曲空間 とユークリッド平行線公準の破綻。したがって、線と線の交点は保証されず、距離だけではなく幾何学の入射関係に依存する。 [ 14 ] [ 15 ]
射影幾何学 では、任意の異なる 2 つの直線は、構成上、ちょうど 1 点で交わります。これは、理想点 (無限遠点) を隣接させることによって実現され、ユークリッド幾何学における平行線は単一の射影点で交わります。[ 4 ] 直線は 1 次元の射影部分空間としてモデル化され、接続関係は基本ですが、距離、角度、曲率の概念は基本ではありません。したがって、射影幾何学は、適切な射影モデルを介してユークリッド幾何学、楕円幾何学、双曲幾何学を研究できる統一的な枠組みを提供します。[ 16 ]
参考文献 ↑ Cook, Jeremy (2023年11月21日). "Coplanar Lines in Geometry | Definition, Diagrams & Examples" . 2024年 11月1日 取得 。 1 2 3 4 Coxeter, H. (1998). 非ユークリッド幾何学 . Spectrum. プロビデンス、ロードアイランド州: アメリカ数学会. ISBN 978-1-61444-516-6 。↑ Anderson, JW (2005). 双曲幾何学 (第2 版). Springer. 1 2 3 Coxeter, HSM (2003). 射影幾何学 (第 2 版). Springer. ↑ Vajda, S.; Hughes, DR; Piper, FC (1974). "投影平面" . Journal of the Royal Statistical Society. Series A (General) . 137 (2): 269. doi : 10.2307/2344563 . ISSN 0035-9238 . ↑ Weisstein, Eric W. 「直線-直線交点」 . MathWorld . 2008年1月10日 取得 。 ↑ アントニオ、フランクリン (1992)。「第 IV.6 章:より高速な線分交差」。カーク、デイビッド (編)『 グラフィックス ジェムズ III』 。アカデミック プレス、 199–202 ページ 。ISBN 0-12-059756-X 。↑ Birchfield, Stanley (1998-04-23). "同次座標" . robotics.stanford.edu . 2000-09-29 のオリジナルから アーカイブ済み . 2015-08-18 に取得. ↑ Traa, Johannes (2013). "Least-Squares Intersection of Lines" (PDF) . cal.cs.illinois.edu . 2017-09-12 の オリジナル (PDF)からアーカイブ済み。2018-08-30 に 取得 。 1 2 「双曲空間の探求」 (PDF) . math.berkeley.edu . 2022年6月3日 取得 . ↑ do Carmo, MP (1976). Differential Geometry of Curves and Surfaces . Prentice Hall. pp. 150–160 . ↑ オニール、B. (2006). 初等微分幾何学 (第2 版). アカデミック・プレス. pp. 140–145 . ISBN 9780120887354 。↑ Todhunter, I. (1893). Spherical Trigonometry: For the Use of Colleges and Schools (3rd ed.). Macmillan. pp. 16– 25. ↑ Anderson, James W. (1999). "Hyperbolic Geometry" . Springer Undergraduate Mathematics Series . doi : 10.1007/978-1-4471-3987-4 . ISSN 1615-2085 . ↑ B. オニール 、『半リーマン幾何学』 、§4↑ Hughes, DR、Piper, FC 射影平面 (第 2 版)。Springer。 {{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)
外部リンク 線分とセグメント間の距離とそれらの最も近い接近点(2012-02-27 にWayback Machine に アーカイブ) は、2 次元、3 次元、またはそれ以上の次元に適用できます。