C言語なら俺に聞け(入門編)Part 57
■ このスレッドは過去ログ倉庫に格納されています
0608デフォルトの名無しさん
2009/12/10(木) 19:41:35// -PI<=rad<PIになるよう正規化する
double GetNormalizedRadian1(double rad) {
while (rad<=-PI) rad+=PI*2;
while (rad> PI) rad-=PI*2;
return rad;
}
double GetNormalizedRadian2(double rad) {
static const double PI2 = PI * 2;
double i=ceil(rad/PI2);
return fmod(rad+i*PI2, PI2);
}
上と下では結果が違うんです
GetNormalizedRadian1(-3*PI) ----> -3.141592
GetNormalizedRadian2(-3*PI) ----> 3.141592
上の関数だとループがなんかイヤだったので下の関数にしましたが、
下手に小細工するよりかは上の関数の書き方の方が良いでしょうか
■ このスレッドは過去ログ倉庫に格納されています