-1

ファイ角度を値dで無限に増減する必要があります。( dは負でも正でもかまいません)。

「無限に」とは、循環変化が可能な限り発生する可能性があることを意味します。ただし、オーバーフローを回避するには、sin () と cos () の周期性に依存して、値を「ドロップ」する必要があります。(0 <=> 2*pi <=> 2*n*pi)。

関数にどのように実装できますか?(例 double stepAngle(double phi, double d))。

4

3 に答える 3

2

これはfmodかなり簡単に可能です。

 double stepAngle(double phi, double d)
 {
    double newPhi = phi += fmod(2*pi, d);
    if(newPhi > 2*pi)
    {
      newPhi -= 2*pi;
    }
    if(newPhi < 0)
    {
      newPhi += 2*pi;
    }

    return newPhi;
于 2013-02-11T17:07:08.907 に答える
1

1つのアプローチは、目的の範囲に再正規化することです。

while (d > 2*pi) d -= 2*pi;
while (d < 0) d += 2*pi;

dこれは、0..2*piの範囲から極端に外れない限り効率的です。

于 2013-02-11T16:51:51.717 に答える