線と線の交差点

交差する2本の線

ユークリッド幾何学において直線と直線の交点は、空集合、一、あるいは直線(一致する場合)のいずれかとなります。これらの場合を区別し、交点を求めることは、例えばコンピュータグラフィックス動作計画衝突検出などに応用できます。

ユークリッド空間において、2本の直線が同一平面上にない場合、それらの直線には交点がなく[1] 、斜直線と呼ばれます。しかし、それらの直線が同一平面上にある場合、3つの可能性が存在します。2本の直線が一致する(同じ直線である)場合、それらの直線には無限個ある点がすべて共通しています。2本の直線は異なっているが同じ方向を向いている場合、それらは平行であるとされ、共通点はありません。そうでない場合、それらの直線には1つの交点があり、例えば、単集合として表されます。

非ユークリッド幾何学は、球面など、1 本の直線が他のどの直線とも平行ではない空間や、1 つの点を通る複数の直線がすべて別の直線と平行になる空間を記述します。[さらなる説明が必要]

数式

2直線が交差するための必要条件、それらが同一平面上にあること、つまり斜交直線ではないことです。この条件を満たすことは、一方の直線上の2点ともう一方の直線上の2点を頂点とする四面体が、体積0であるという意味で退化していることと等価です。この条件の代数的表現については、 「斜交直線」§「歪度の判定」を参照してください

各線上に2点ずつある場合

まず、 2次元空間における2本の直線L1L2の交点考える。直線L1は2つの異なる( x1y1 )( x2 y2 )で定義され、直線L22異なる点( x3y3 )( x4y4 )定義される[ 2]

直線L 1L 2の交点Pは、行列式を使用して定義できます

行列式は次のように記述できます。

2 つの線が平行または一致する場合、分母は 0 になります。

各線分上の2点が与えられる

上記の交点は、点間の線分ではなく、点によって定義される無限長の直線の交点であり、2つの線分のいずれにも含まれない交点を生成する可能性があります。線分に対する交点の位置を求めるために、直線L 1L 2を1次ベジェ曲線パラメータで定義します。

(ここでtuは実数である)。直線の交点は、tまたはuが以下のいずれかの値である点にある。

そして

0 ≤ t ≤ 1かつ0 ≤ u ≤ 1の場合には交点が存在する。交点は0 ≤ t ≤ 1の場合には最初の線分内にあり、 0 ≤ u ≤ 1の場合には2番目の線分内に収まる。これらの不等式は割り算を必要とせずに検定できるため、正確な点を計算する前に線分の交点の存在を迅速に判定することができる。[3]

2つの線分がx軸と を共有し、簡約する場合

2つの直線方程式が与えられた場合

2 本の非垂直線の交点のx座標y座標は、次の置換と並べ替えを使用して簡単に見つけることができます。

2本の直線がy = ax + cy = bx + dという方程式を持つとします。ここで、aとbは直線の傾き勾配 cd直線のy切片です。2本の直線が交差する点(もし交差するなら)では、両方のy座標は同じになります。したがって、次の等式が成り立ちます。

この式を変形してxの値を抽出すると

など、

y座標を見つけるには、 2 つの直線方程式のいずれか、たとえば最初の方程式にxの値を代入するだけです。

したがって、交点は

a = bの場合、2 つの線は平行であり、交差しません。ただし、c = dの場合は、2 つの線は一致し、すべての点で交差します。

同次座標の使用

同次座標を用いることで、暗黙的に定義された2本の直線の交点を非常に簡単に決定することができます。2次元では、すべての点は3次元点の投影として定義でき、これは順序付けられた3つの組( x , y , w )として与えられます。3次元座標から2次元座標へのマッピングは、( x ′, y ′) = ( ×/y/2Dの点を( x , y ,1)と定義することで同座標に変換できます

2次元空間において、a 1 x + b 1 y + c 1 = 0およびa 2 x + b 2 y + c 2 = 0と定義される2本の無限直線の交点を求めたいとします。これらの2本の直線は、直線座標においてU 1 = ( a 1 , b 1 , c 1 )およびU 2 = ( a 2 , b 2 , c 2 )と 表すことができます。2本の直線の交点Pは、単純に[4]で与えられます。

c p = 0の場合、線は交差しません。

2行以上

2本の直線の交差は、他の直線も含むように一般化できます。n本の直線の交差問題の存在と表現は以下のとおりです。

2次元では

二次元では、2本以上の直線が1点で交差することはほぼありません。交差するかどうか、また交差する場合はその交点を求めるには、 i番目の方程式(i = 1, …, n)を次のように 書きます。

これらの方程式を行列形式にまとめると、

ここで、n × 2行列Ai行目は[ a i 1 , a i 2 ]でありwは2 × 1ベクトル[x
y
]
であり、列ベクトルbのi番目の要素はb iである。A独立な列を持つ場合、その階数2 である。そして拡張行列[ A | b ]の階数場合にのみnの交点が存在する。交点が存在する場合、それは次のように与えられる。

ここで、A gはAムーア・ペンローズ一般逆行列です( A は列フルランクであるため、図示の形になります)。あるいは、任意の2つの独立方程式を連立解くことで解を求めることもできます。ただし、 Aのランクが1の場合、拡張行列のランクが2であれば解は存在しませんが、ランクが1であればすべての直線は互いに一致します。

3次元で

上記のアプローチは3次元にも容易に拡張できます。3次元以上の場合、たとえ2本の直線であっても、交差することはほぼありません。交差しない非平行な直線のペアは、斜交線と呼ばれます。しかし、交差が存在する場合は、以下のようにして見つけることができます。

3次元では、直線は2つの平面の交点として表され、それぞれの平面は次の式の方程式を持つ。

したがって、 n本の直線の集合は、3次元座標ベクトルwの2n方程式で表すことができます

ここで、A2 n × 3bは2 n × 1である。前述と同様に、 Aがフルランクで拡張行列[ A | b ]がフルランクでない場合に限り、交点が一意に存在する。そして、交点が存在する場合の交点は次のように与えられる。

斜線に最も近い点

PQ、2つの斜線ABとCDの間の最短距離はABとCDの両方に垂直です

2 次元以上の場合、通常、最小二乗法の意味で 2 つ以上の線に相互に最も近い点を見つけることができます

2次元では

2次元の場合、まず直線iを、直線上のp iとその直線に垂直な単位 法線ベクトル iで表します。つまり、直線1上の点x 1x 2であれば、 p 1 = x 1とし、

これは、直線に沿った単位ベクトルを直角に回転させたものです。

xから直線( p , )までの距離は次のように与えられる。

そして点xから直線までの距離の2乗は

多くの線までの距離の二乗の合計がコスト関数です。

これは次のように並べ替えることができます。

最小値を見つけるには、 xについて微分し、その結果をゼロベクトルに設定します。

それで

など

2次元以上

i は2次元以上では明確に定義されないが、n̂ i n̂ i T は単に対称行列であり、直線に沿う方向の固有値が0で、その方向の固有値が1であることに注意すれば、任意の次元に一般化できる。この固有値p iとの間の距離の半ノルムを与え、直線まで距離を与える。任意の次元において、i がi番目の直線沿った単位ベクトルである場合、

なる

ここでI単位行列であり、[5]

一般的な導出

直線の交点を求めるには、それらの直線から最短距離にある点を計算します。各直線は原点a iと単位方向ベクトルiで定義されます。点pから直線のいずれかまでの距離の2乗は、ピタゴラスの定理から与えられます。

ここで、( pa i ) T iは直線iへのpa iの射影である。すべての直線に対する正方形までの距離の合計は

この式を最小化するには、 pに関して微分します

その結果

ここで、Iは単位行列です。これは行列Sp = Cであり、解p = S + Cとなります。ここで、S +はS擬似逆行列です

非ユークリッド幾何学

左から右へ:ユークリッド幾何学、球面幾何学、双曲幾何学
左から右へ:ユークリッド幾何学、球面幾何学、双曲幾何学

球面幾何学では、任意の2つの大円は交差します。[6]

双曲幾何学では、任意の直線と任意の点が与えられたとき、その点を通り、その直線と交わらない直線は無限に存在する。[6]

参照

参考文献

  1. ^ Cook, Jeremy (2023年11月21日). 「幾何学における共面線|定義、図、例」 . 2024年11月1日閲覧
  2. ^ Weisstein, Eric W.「Line-Line Intersection」. MathWorld . 2008年1月10日閲覧。
  3. ^ アントニオ・フランクリン (1992). 「第IV章6: 線分の交差の高速化」. カーク・デイビッド (編). 『グラフィックス・ジェムズIII 』 . アカデミック・プレス, pp.  199– 202. ISBN 0-12-059756-X
  4. ^ Birchfield, Stanley (1998-04-23). 「同次座標」. robotics.stanford.edu . 2000年9月29日時点のオリジナルよりアーカイブ。 2015年8月18日閲覧
  5. ^ Traa, Johannes (2013). 「Least-Squares Intersection of Lines」(PDF) . cal.cs.illinois.edu . オリジナル(PDF)から2017年9月12日にアーカイブ。 2018年8月30日閲覧
  6. ^ ab 「双曲空間の探究」(PDF) . math.berkeley.edu . 2022年6月3日閲覧
  • 2 次元、3 次元、またはそれ以上の次元に適用可能な、最近接ポイントを持つ線分とセグメント間の距離。
Retrieved from "https://en.wikipedia.org/w/index.php?title=Line–line_intersection&oldid=1323331140"