4

Sin(720) または Cos(1440) (度単位の角度) の使用はありますか? コンピュータープログラミングであれ、その他の状況であれ?一般に、360 度を超える角度の Sin/Cosine/Tan を使用することはありますか?

物理学では内積と外積をよく使用しますが、常に 180 度未満の角度が必要です。

こんにちは、私はそれらを計算する方法を知っています.... それらが役に立つかどうか知りたいですか???? たとえば、Sin(440) を計算する必要がある状況に遭遇するのはいつですか?

4

15 に答える 15

10

数学とプログラミングの両方で:

Sin(x) = Sin(x % 360)

別の回答が指摘したように、360 を超える角度は、円とモジュロ部分の 1 つまたは複数の完全な回転を表します。これは、状況によっては物理的な意味を持つ場合があります。

また、三角関数の計算を行うときは、この事実を考慮する必要があります。例えば:

sin(a)*cos(a) = (1/2)*sin(2a)

a>180 の場合、360 より大きい角度の sin が得られます。

ところで、こちらをご覧ください。

于 2009-05-20T13:31:44.173 に答える
4

角度演算を行うときに、このようなことが起こるのを見てきました。

float angleOne = 150;
float angleTwo = 250;

//...

float result = Sin(angleOne + angleTwo); // Sin(400)
float result = Sin(angleOne - angleTwo); // Sin(-100)

この(考案された)例では明らかなようですが、複数のオブジェクトの任意の回転に基づいて角度を計算している場合、どのような数値が得られるかを常に知ることはできません。たとえば、3Dゲームで、回転するプラットフォームの上に立っているプレーヤーの位置を計算することを想像してみてください。

于 2009-05-20T13:37:53.817 に答える
3

円の周りの1回転は360度または2piラジアンです。

サインやコサインなどの三角関数は、360度に達すると「ラップアラウンド」し、0度の場合と同じように機能します。基本的に、次のことが発生します。

angle_in_unit_circle = angle mod 360

また、接線などの一部の三角関数は、90度や270度などの特定の角度では定義されていません。この場合、ある角度の接線は正または負の無限大を返します。

この「ラップアラウンド」は、単位円に内接する直角三角形を使用して正弦、余弦、接線関数を表すことで確認できます。この動作により、これらの関数はパターンを何度も繰り返すため、周期的になります。

ウィキペディアには三角関数に関する広範な記事があるので、一見の価値があるかもしれません。

使用法

使用に関しては、頭のてっぺんから良い例を思いつくことはできません。ただし、角度が時間に依存する極座標系の特定の時間における粒子の位置を表す場合を除きます。 :θt

r(θ(t)) = t    where θ(t) = t

0から720までのtの値の場合、デカルト座標系で次のように表すことができます。

x(t) = r sin(θ(t)) == t sin(t)
y(t) = r cos(θ(t)) == t cos(t)

パーティクルは、時間に応じてスパイラルタイプの動きで移動しtます。この場合、360度を超える角度のサインとコサインが計算されます。

(そして私の数学はさびているので、上記の方程式に誤りがある場合は、私に知らせてください!)

于 2009-05-20T13:32:37.137 に答える
3

通常の計算では、1 回以上「円を横切る」ことになる場合があり、計算を単純にすると、角度は 360 より大きい可能性があります。個人的には、角度を 0 から 360 に正規化するのが好きです。このような操作の後、-180 から 180 になりますが、それほど重要ではありません。

より大きな数が実際に何かを表している場合があります。些細な例を挙げると、古典的な文字盤の組み合わせの金庫を開く手順を想像してみてください。ダイヤルを数回回す必要があるため、手順は次のようになります。

   turn(800);  // Twice around plus another 20 degrees
   turn(-500); // Once around the other direction plus 140 degrees
   turn(40);   // Dial in the last digit

そのコンテキストでは、sin または cos を取得すると、ダイヤルの最終的な位置について何かがわかりますが、関与した回転数に関する情報は失われます。

于 2009-05-20T14:01:02.400 に答える
3

ユーザー インタラクション テクニックを扱っているときはいつでも、0 度または 360 度を超える可能性があります。砲塔のあるゲームを作っていると想像してください。現在 359 度を指しており、ユーザーがジョイスティックを右に引っ張ると、今度は 361 度を指します。角度表現を間違って実装すると、突然、銃が左に 360 度近く急速に移動します。

私は、ユーザーがそのバグに失望するだろうと予測しています。

ゲーム、シミュレーション、および実際のデバイス制御で重要な基準フレームの オイラー角表現には、あらゆる種類の問題があります。ジンバルロックは、実際の回転機器制御では深刻な問題です(私の人生ではカメラのパン/チルト機器の問題でした)。「急速な回転」バグは、昔々小さなボートの自動操縦システムでは非常に厄介な問題でした.スチールケーブルを操舵室の周りに非常にきつく巻き付けることを想像してみてください.

于 2009-05-20T13:54:44.597 に答える
1

正弦曲線では、Sin(720)== Sin(0)(etc)なので、これらの関数の適切な実装では、360度よりも「大きい」角度を処理できると思います。より大きな角度に到達する理由はいくつもあります。 360未満または0未満。

于 2009-05-20T13:35:50.843 に答える
1

「主角度」[-180,180)の範囲外の角度は、本質的に相互のエイリアス(360度を法とする)であり、物理的な区別はありません。

数学的/工学的な意味から、回転数が重要であり、追跡しなければならないプロセスがある場合(たとえば、前後に回転しているモーター)、0度と720度は同じではありません。サインとコサインは単なる周期関数であるため、360度ごとに同じ値になります。x(t)= A cos(ωt+φ)およびy(t)= A sin(ωt+φ)で均一な円運動をしている粒子がある場合、位相角θ=(ωt+φ)は次のようになります。 0度でも720度でも82144.33度でも何でも構いません。

したがって、関数cos(θ)とsin(θ)は、θの値に関係なく、x座標とy座標を計算するために使用されます。問題に選択肢があるわけではありません。θが82144.33度の場合、その角度の正弦と余弦を計算する必要があります。

于 2009-05-20T13:46:46.827 に答える
1

私は Garry's Mod という PC ゲームをプレイしていますが、ゲームの中で、プログラミングの際に、オブジェクトを一定の円内で常に動かし続けるための簡単なソリューションが必要になる瞬間があります。これを行うには、永久に増加するタイマーのサインとコサインを使用して、ゲームが起動してからの時間を測定します。

T (時間) のサインは軌道パスの X 値に等しく、T のコサインは軌道パスの Y 値に等しくなります (X と Y は 3 次元座標平面上にあり、Z は現在使用されていません)。

例:

T=1000 ティック X=sin(T) Y=cos(T)

したがって、X はその時点で 0.8268795405320025 であり、Y は 0.15466840618074712 です。

ここで、時間が 1500 になるとします。X は -0.9939019569066535、Y = -0.11026740251372914 になります。

簡単に言えば、1 から -1 まで絶えず変動し、その値をたとえば 100 で乗算する機会を残して、座標平面をキャラクターの位置に対してローカルにすると、プログラムされた式に基づいてオブジェクトを移動するように指示できます。それらの座標と、それは私の周りを一定の円形の経路で移動します。

多田。ビデオゲームからは学べないと誰が言いますか?

于 2010-06-30T21:24:09.803 に答える
0

なぜならsin(x) = sin(x mod 360°)cos(x) = cos(x mod 360°)計算にはすべての値を使用できますが、範囲[0°,360°)またはその他の範囲に正規化することもできます360°。大きな角度が明確に定義された意味を持っているかどうかは、使用法によって異なります。

プロセッサは、計算を1の範囲以下に正規化し、90°この小さな範囲から他のすべての値を導き出します。

引数が360°発生するよりも大きいのはいつですか?

それらは、周期的な時間または空間に依存する関数のシミュレーションで自然に発生します。

于 2009-05-20T13:34:58.223 に答える
0

ある種の計算のために、角度測定値が 360 度を超えることは確かにあります...しかし、それは無限の数の他の角度測定値と同じであり、そのうちの 1 つだけが 0 から 360 の間になります。ただし、関数をコーディングしている場合は、この計算を自分で処理できる必要があります...ユーザーが mod を実行することに依存しないでください。

つまり、sin(370) == sin(10) は真実であり、ユーザーはこの変換を自分で行うことができますが、何らかの理由でそうしたくない場合があります (最高評価のコメントの「ボルト」の例を参照してください)。 answer)、関数は任意の値を処理できる必要があります。

于 2009-05-20T13:30:59.103 に答える
0

ここで違いを知っているように見えるので、あなたの質問はあまり意味がありません:

いいえ - Sin(0) を「計算」する必要がある以上、Sin(720) を「計算」する必要はありません。裏で何が起こっているのかを完全に理解するには、Sinus 関数の定義を調べる必要があります。それが理解されると、Sin(0) = Sin(720) の理由が誰にとっても完全に理にかなっています。魔法のようなことは何も起こっていません。 、(論理的に)Angle = FullAngle % 360はありません。それはすべて、関数が何をすべきかの定義にあります。

ウィキペディアを参照

于 2009-05-20T13:51:58.983 に答える
0

@dta、人々は少し混乱していると思います。あなたはそれが「役に立つ」かどうか尋ねます。「計算を実行するときに角度を適切な範囲にシフトするだけなので、問題ありません」と私は言います。複数回の回転を考慮して、オブジェクトが 0 度からどれだけ回転したかを知る必要がある場合は確かにあります。しかし、これらの場合を除けば、通常の 0 ~ 360 の範囲で角度を解釈する方が便利です。ほとんどの人は、どの方向がその通常の範囲内の角度に対応するかについて直感的な感覚を構築します。170,234 度はどの方向を指していますか? 314度と同じ。

于 2009-05-20T13:55:39.930 に答える
0

360 度を超える角度も、たとえばスノーボードのトリックを説明するために使用されます。

http://en.wikipedia.org/wiki/List_of_snowboard_tricks#Spins

ご覧のとおり、より高い角度を使用してオブジェクトの回転を記述するさまざまな実世界の例があります。

于 2010-12-11T00:27:30.617 に答える
0

@Chris Arguin などが言ったように、360° より大きい角度 (または -360° より小さい角度) の sin が有用かどうかは、 angle と angle%360° の差。

また、sin(angle%360) の代わりに sin(angle) を呼び出すと、同じ答えが得られるため、特にループ内で多くの計算を行っている場合は、処理時間を少し節約できます。

OTOH、@Scottie Tは、誰かがあなたの角度が円の周りのどこを指しているかを知ることが重要である場合、人々は一般的に絶対値が360以下の角度の位置をより大きな角度よりも簡単に直観できることを良い点にしています.

于 2009-05-20T14:15:20.187 に答える
0

[0,360] 以外の角度が必要になる状況は数多くあります。コンビネーションロックのアイデアが好きです。ここでは、単純な [0,360] 度の範囲外の正と負の両方の角度がよく見られます。

複数の角度の式は、数学ではしばしば重要です。三角関数は、三角形以外の場所で使用されます。それらは、たとえばフーリエ級数、画像圧縮スキーム、または微分方程式の解など、さまざまな場所に現れます。計算上、常に mod を使用して三角関数の範囲を既定値に縮小できることは事実です。しかし、角度が常にその公称範囲で提供されるということはめったにありません。

于 2009-05-20T14:16:03.880 に答える