三角形 三角法 (ActionScript 3)
-
09-06-2019 - |
質問
ActionScript 3 で var "z" (以下の画像を参照) を度単位で取得し、ラジアンに変換する数式を作成しようとしています。
vars "x" と "y" の値はすでにわかっています。三角法を使用して、斜辺の長さ、つまり var z の可変角度を計算するにはどうすればよいでしょうか?AS3 または疑似コードのいずれかのソリューションが非常に役立ちます。ありがとう。
解決
必要なものは次のとおりです。
var h:Number = Math.sqrt(x*x + y*y);
var z:Number = Math.atan2(y, x);
これで角度がラジアンで得られるはずです。x/y を入れ替えたり、場合によっては 90 度を追加または削除したりする必要があるかもしれませんが、それでうまくいくはずです。(必要ないことに注意してください) h 取得するため z atan2を使用している場合)
Math はかなり遅いため、Math.pow() の代わりに乗算を使用します。次のようにすることができます。
var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
そしてそれはまったく同じであるはずです。
他のヒント
z は 180 - yH の角度に相当します。または:
180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians
また、actionscript の数学ライブラリにそれがある場合は、x と y の両方を受け取り、符号を正しく処理する arctan2 を使用してください。
必要な角度は、y と h の間の角度と対向する角度と同じです。
電話しましょう a
間の角度 y
そして h
, 、実際に必要な角度は 180 - a
または PI - a
単位(度またはラジアン)に応じて異なります。
さて、幾何学は次のことを教えてくれます。
cos(a) = y/h
sin(a) = x/h
tan(a) = x/y
Tan() を使用すると、次のようになります。
a = arctan(x/y)
180 - a を探しているので、次のように計算する必要があります。
180 - arctan(x/y)
@Patrickが言ったこと、斜辺もそうです sqrt(x^2 + y^2)
.