前回は直線の方程式から交点を求めていました。しかし、実務上の直線の定義は始点座標と方位角で定義される場合が多いものです。したがって、今回は始点と方位角から2直線の交点を計算します。
使用する座標系は測量座標系で表します。測量座標計とは大雑把に表現すると北方向をX軸とする座標系です。方位角はX軸から時計回りの角度です。
二直線の始点座標と方位角をそれぞれ以下のように決めます。
\begin{eqnarray}
始点座標&:&(x_a,y_a),(x_b,y_b)\\
方位角&:&A_a,A_b
\end{eqnarray}
交点Cの座標及び、A点及びB点と交点Cとの距離を以下のように表します。
\begin{eqnarray}
交点C座標&:&(x_c,y_c)\\
A-C間距離&:&L_a \hspace{0.3cm},B-C間距離:L_b
\end{eqnarray}
これらから交点座標は以下の4式となる。
\begin{eqnarray}
x_c&=&x_a+L_a\cos A_a \hspace{0.3cm},y_c=y_a+L_a\sin A_a\\
x_c&=&x_b+L_b\cos A_b \hspace{0.3cm},y_c=y_b+L_b\sin A_b
\end{eqnarray}
上式を2距離について解く。
\begin{eqnarray}
L_a&=&\frac{\sin A_b \cdot (x_a-x_b)-\cos A_b \cdot (y_a-y_b)}
{-\cos A_a \cdot \sin A_b+\cos A_b \cdot \sin A_a} \\
L_b&=&\frac{\sin A_a \cdot (x_a-x_b)-\cos A_a \cdot (y_a-y_b)}
{-\cos A_a \cdot \sin A_b+\cos A_b \cdot \sin A_a}
\end{eqnarray}
分母が0になる時は交点が存在しない、2線の方位角が等しい時すなわち平行線の時である。
プログラム化する時は分母をチェックすることが必要である。
交点座標はこの2距離を前式に代入すれば求めることができる。
- 投稿タグ
- 交点