質問: 二点の座標から角度を求めるには? 2点の座標a,bの角度を求めたいのですが,たとえばa点(0,0)とb点(4,3)を結ぶラインは、底辺bxと高さbyを元に三角関数?から30度と求められますが、b点がマイナス座標が絡んできた場合などの90度から359度までをどう求めていいか悩んでいます。また、a点も(0,0)に限定されるわけではないので、ますます混乱しています。どう考えればよいのか教えていただきたいのですが (水平はx軸プラス方向が0度です)
回答: 仰っておられるのは、二次元座標平面の上で、aからbへ伸ばした腺が、x軸と作る角度を計算するということだと思います。その場合、aとbが自由な位置にあると、第一象限、第二象限、第三象限、第四象限と、角度が0度から360度まで、色々な値になります。 aからbへ伸ばしたヴェクトルは、aとbの座標を、a(x1, y1)、b(x2, y2)とすると、b-a=(x2-x1, y2-y1)となり、このxとyの値に対応する点を、仮にc点とすると、c(x2-x1, y2-y1)という点と、原点o(0, 0)のあいだで、原点からcに伸ばした腺が、x軸と作る角度のことになります。 その場合、c点がどこにあるかで、どこの象限にいるかが分かるのであり、どこの象限にあるかを、まず判断して、角度を考えると、混乱しないです。 c(x2-x1, y2-y1)をまず計算してみてください。そこで、 y2-y1>=0 かつ x2-x1>=0 の場合は、第一象限、つまり角度θは、0=<θ=<90 y2-y1>=0 かつ x2-x1=<0 の場合は、第二象限、つまり角度θは、90=<θ=<180 y2-y1=<0 かつ x2-x1=<0 の場合は、第三象限、つまり角度θは、180=<θ=<270 y2-y1<0 かつ x2-x1>=0 の場合は、第四象限、つまり角度θは、270<=θ<360 y2-y1=0 かつ x2-x1=0 の場合は、角度θは、0=θ=360となるので、360の方は、一周して、0に戻ったので、無視します。 このように、大体c点がどこにいるかで、角度がどういう数字になるか、見当がつきます。 その上で、tanθ=(y2-y1)/(x2-x1) の式で、tanθを求めて、三角関数表を見ながら、θの値を求めるのですが、その時、cの位置で、θの二つの値のどちらの角度かを、上の四つに分けた範囲に当て嵌め、該当する角度を答えにします。 c点の座標を求めたとき、図に描いてみると、どこになるのか、はっきりします。