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-a2qx1+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