7

ActionScript 3 で、var "z" (下の画像を参照してください) を度単位で取得し、それをラジアンに変換する数式を記述しようとしています。

変数「x」と「y」の値はすでにわかっています。三角法を使用して、斜辺の長さ、したがって var z の可変角度を計算するにはどうすればよいですか? AS3 または疑似コードのソリューションは非常に役立ちます。ありがとう。

三角形

4

4 に答える 4

6

必要なものはこれです:

var h:Number = Math.sqrt(x*x + y*y);
var z:Number = Math.atan2(y, x);

これでラジアン単位の角度が得られるはずです。x/y を交換し、場合によっては 90 度を追加または削除する必要がありますが、うまくいくはずです。( atan2 を使用している場合、zを取得するためにhも必要ないことに注意してください)

Math.pow() の代わりに乗算を使用します。これは、Math が非常に遅いためです。次のことができます。

var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

そして、それはまったく同じでなければなりません。

于 2008-09-11T19:08:16.997 に答える
4

z は 180 - yH の角度に相当します。または:

180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians

また、actionscript の数学ライブラリにある場合は、x と y の両方を取り、符号を正しく処理する arctan2 を使用します。

于 2008-09-11T09:27:37.610 に答える
1

必要な角度は、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)
于 2008-09-11T10:40:39.710 に答える
0

@Patrickが言ったこと、また斜辺はsqrt(x^2 + y^2).

于 2008-09-11T09:31:41.670 に答える