2直線の交点の座標計算

|直線の(2座標を通る式の)場合| サイトマップホーム

2つの直線の交点座標を計算します。
2直線の通るそれぞれの2つの座標から交点座標を計算します。また直線の公式指定での交点座標も計算します。

直線の2座標を通る場合

直線1の通る座標P1(x y)、 座標P2(x y
直線2の通る座標Q1(x y)、 座標Q2(x y

計算式は以下の通りです。

座標P1(px1,py1)と座標P2(px2,py2)を通る直線1と、 座標Q1(qx1,qy1)
と座標Q2(qx2,qy2)を通る直線2の
交差する座標S(sx、sy)として、それぞれの直線の傾きをa1、a2とします。

  a1=(py2-py1)/(px2-px1)
  a2=(qy2-q1y)/(qx2-qx1)

点 (x,y) を通り、傾きが a の直線の公式は y-y0=a(x-x0) です。
これに当てはめると、2つの直線の式は以下のようになります。

  直線1: y-py1=a1(x-px1) → y=a1x-a1px1+py1
  直線2: y-qy1=a2(x-qx1) → y=a2x-a2​qx1+qy1

交点Sのx座標を計算すると、直線1と直線2の y の値が等しくなるため、

  a1sx−a1px1+py1=a2sx−a2qx2+qy1
  (a1−a2)sx=a1px1−a2qx1−py1+qy1

したがって、交点 S(sx,sy)の座標は以下の式で求められます。
(ただし a1 not=a2の場合に限ります)

  sx=(​a1px1−a2qx1+qy1−py1)/(a1−a2)
  sy=a1(sx−px1)+py1

※注意
2直線が平行な場合(a1=a2)のときは分母が0になるため、
交点は存在しないことになります。
どちらかの直線が垂直(傾きが無限大)な場合は次の様になります。
 ・直線1が垂直の場合はsx=px1、sy=a2(px1−qx1)+qy1
 ・直線2が垂直の場合はsx=qx1、sy=a1(qx1−px1)+py1

直線の式の場合

直線1の式y1 = a1 x + b1
直線2の式y2 = a2 x + b2
角度の単位(ラジアン)

計算式は以下の通りです。

直線1の式:y=a1x+b1
直線2の式:y=a2x+b2

交点(x,y)を計算すると、y=a1x+b1=y=a2x+b2

x = ( b2 - b1 ) / ( a1 - a2 )
y = a1 * x + b1

|直線の(2座標を通る式の)場合| サイトマップホーム