1

私はゲームに取り組んでおり、Entity基本クラスを書いています。エンティティの多くはパーティクル (2D) のように動作するため、回転度の代わりに法線を使用したいと考えています。ただし、OpenGL を使用しているため、回転する法線の角度が必要です。法線から度に、またはその逆に変換する最速の方法は何ですか。などの三角関数を使用できることは知っていますatan2 sin cosが、より高速な方法があると確信しています。どんな助けや指示もいただければ幸いです。

ここに画像の説明を入力

4

1 に答える 1

10

2 次元に制約されていて、方向ベクトル (x, y) を x 軸からの角度に変換しようとしてatan2(y, x)いる場合、可能な値を制約しない限り、ほぼ間違いなく最速の方法になります。 x と y のいくつかの非常に些細なケースに。y 軸から度数を取得するatan2(x, y)には、もちろん を使用します。この角度はラジアンになります。度に変換するには、180/pi を掛けます。これには、わずかな時間が必要です。

あなたが描いている図は、それatan2(x, y) * 180 / Math.PIがあなたが望む結果をもたらすことを示唆しています。

コードのプロファイリングを行って、この計算にボトルネックがあると判断した場合を除き (これはありそうもないことです)、速度を気にする必要はありません。

于 2012-01-05T00:43:54.933 に答える