質問

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

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

triangle

役に立ちましたか?

解決

必要なものは次のとおりです。

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).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top