アプリ版:「スタンプのみでお礼する」機能のリリースについて

2点の座標A,Bの角度を求めたいのですが,たとえばA点(0,0)とB点(4,3)を結ぶラインは、底辺Bxと高さByを元に三角関数?から30度と求められますが、B点がマイナス座標が絡んできた場合などの90度から359度までをどう求めていいか悩んでいます。また、A点も(0,0)に限定されるわけではないので、ますます混乱しています。どう考えればよいのか教えていただきたいのですが
(水平はX軸プラス方向が0度です)

A 回答 (6件)

>2点の座標A,Bの角度を求めたい~・・・・



このままなら答えは0ですけど?

xy座標で、x軸のプラス方向を0度とし、
2点の座標A、Bにより形成される線ABとx軸との角度
ってことですね。

>たとえばA点(0,0)とB点(4,3)を結ぶラインは、底辺Bxと高さByを
>元に三角関数?から30度と求められますが、

sen-senさんの書かれたとおり、これは間違いです。
この場合、Bからx軸へのばした垂線とx軸との交点をCとすると、
三角形ABCができ、そのときの求めたい角度をθとすると、
tanθ=3/4となります。
よって、θ=36.8698...
となります。

>B点がマイナス座標が絡んできた場合などの90度から359度までを
>どう求めていいか悩んでいます。また、A点も(0,0)に限定される
>わけではないので、ますます混乱しています。
>(水平はX軸プラス方向が0度です)

常にx軸のプラス方向が0度でしたら、
1.第一象限にある場合は90度足す。
2.第二象限にある場合はそのまま。
3.第三象限にある場合は270度足す。
4.第四象限にある場合は180度足す。
とすればいいのでは?

簡単な例として、x軸と点A(0,5)と点B(-3,7)によって形成される
線ABとの間の角度は・・・・

まず、図を描いてみると点Bは第一象限にあるので、
最後に求めた角度に90度足せばいいだけです。
さっきと同じように直角三角形を作成します。
すると点Cの座標は(0,7)となります。
辺ABと辺ACとの間の角度は、tanθ=3/2
θ=56.3
以上より、x軸(に水平な線)と線ABとの間の角度は146.3度となります。

こんな感じでいいのでは?
    • good
    • 2
この回答へのお礼

詳細に説明いただきありがとうございました。

お礼日時:2002/08/01 10:05

 


仰っておられるのは、二次元座標平面の上で、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点の座標を求めたとき、図に描いてみると、どこになるのか、はっきりします。
  
    • good
    • 0
この回答へのお礼

詳細に説明いただきありがとうございました。

お礼日時:2002/08/01 10:05

直角三角形を使って求めます


A点からB点に直線を結びますA点からX軸に水平な線、B軸からY軸に水平な
線を引くとC点(4,0)で交わります
tanを求めると
tanθ=3/4=0.75となります
後はこの値を三角関数表で調べれば
およそ36.8度ぐらいになります

例題)A(1,3)、B(-3,-2)の場合
AからY軸に水平に直線を引きます
BからX軸に水平に直線を引きます
C点(1,-2)で交わります
BC間は4、CA間は5となります
tanθ=5/4=1.25
三角関数表よりおよそ51.3度となります

直角三角形を作って解くと簡単です
実際に描いてみたほうがいいと思います
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2002/08/01 10:06

高校数学Bで今は扱っているベクトルか,同じく数学Bの複素数平面の話はまだ未習でしょうか.


ベクトルの概念を使うのが適切でしょう.

2点 A(-1,2√3), B(-3,4√3)を例に考えると
点Aにいる自分が点Bに移動する時の移動量は,
x軸方向に-2(つまりx軸方向の負の向きに大きさ2),
y軸方向に+2√3(つまりy軸方向の正の向きに大きさ2√3),
です.
これを, ベクトルAB=(-2,2√3)と表します.[正確にはABの上に右向きの矢印→をつけますが, うまく打てないのでこれで許してください.]

すると, これは原点O(0,0)から点(-2,2√3)まで移動するときの移動量と同じです. (『左に2歩, 上に5歩』などというのと同じですね.)

するとこのベクトルABを, 原点を出発点にして書いたとき,到着点は点(-2,2√3)で,これとx軸の正の向きとがなす角(0°~360°)を求めれば,元の図で求めたい角と同じです.ちなみに,今の場合,120°です.

一般には,A(a,b),B(c,d)とすると,移動量を表すベクトルは
ベクトルAB=(c-a,d-b)
つまり (終点)-(始点)をx座標もy座標もやると,求まります.[正確にはx成分,y成分と言ったほうがいいのでしょうが.]

詳しくはベクトルのあたりの本をご覧になるといいのではないでしょうか.
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2002/08/01 10:09

点A,Bの座標を


 A(x_a,y_a), B(x_b,y_b)
とします。すると、ベクトルABは、
 (x_b-x_a,y_b-y_a)
です。ここで、ベクトルABがx軸の正の方向となす角をθ°とすれば、
 tan(θ°)=(y_b-y_a)/(x_b-x_a)
です。後は、三角関数表を使って求めることになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2002/08/01 10:04

>三角関数?から30度と求められますが、



30度でなく37度位ではないでしょうか。
二次元での角度は基準となる軸とその角の座標と後一点が決まれば、計算することが可能でしょう。
三角関数の逆関数を使うのがよいのではないでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。30度ではないですね( ^ ^;)

お礼日時:2002/08/01 10:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています