ファイ角度を値dで無限に増減する必要があります。( dは負でも正でもかまいません)。
「無限に」とは、循環変化が可能な限り発生する可能性があることを意味します。ただし、オーバーフローを回避するには、sin () と cos () の周期性に依存して、値を「ドロップ」する必要があります。(0 <=> 2*pi <=> 2*n*pi)。
関数にどのように実装できますか?(例 double stepAngle(double phi, double d))。
これは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;
1つのアプローチは、目的の範囲に再正規化することです。
while (d > 2*pi) d -= 2*pi;
while (d < 0) d += 2*pi;
d
これは、0..2*piの範囲から極端に外れない限り効率的です。