プロが教える店舗&オフィスのセキュリティ対策術

直角三角形の角度を求めるときの計算過程を教えてください。

最終的にやりたいことはWOLFエディタを使って、
クリックしたところから30ピクセル以内の線を引きたいです。
(ピクチャの<LINE>コマンドを使います)

クリックしたところのXY座標と現在のマウスの座標から、
三角関数の斜辺を求めて、その線が31ピクセル以上だったら、
同じ角度で斜辺が30の時のXY(底辺、高さ)を求めてそれにXYを置き換えることで
実装しようと考えています。

そこでタンジェントの逆関数、アークタンジェントで求められることや、
ラジアンから角度の変換方法など見つけたのですが、もともと数学が苦手で、
どうしても結果がおかしくなってしまいます。

例えば、底辺が2で高さが1の場合、答えは約26度になるはずですが、
そこまでの計算過程を教えてください。
もしくはもっと簡単な方法があれば教えてください。

A 回答 (2件)

同じ角度で斜辺が30の時のXY(底辺、高さ)を求めてそれにXYを置き換える


だけで、角度そのものが知りたいわけではないのですよね。

だったら簡単に
 ベクトル(X,Y)の長さを30になるように縮小
すればよいだけでは?

x = 30X / √(X²+Y²)
y = 30Y / √(X²+Y²)

でいかが?
    • good
    • 1
この回答へのお礼

なんと…とてもシンプルですね!!!
凄く短い手順でうまく実装できました!
ありがとうございます!!

お礼日時:2022/03/15 08:26

>底辺が2で高さが1の場合、答えは約26度になるはずですが



tanθ=1/2 ならば arctan(1/2)≒26.565… となりますが、
この計算は 関数電卓を使うか 三角関数表から 読み取るしかありません。
但し 関数表は tan(正接)は それほど細かく表示されていませんから、
tanθ=sinθ/cosθ を使って 計算し直します。
斜辺の長さは 三平方の定理から 簡単に求められますね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
プログラムに落とし込みたいので関数電卓や三角関数表は使えないのです…

お礼日時:2022/03/15 08:27

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