投稿者 tel | 2010年11月23日

ラジアンをまるめる

なんて表現したらいいか忘れたけど、ある値をπから-πの範囲に収める必要があったのでメモ。

sincos関数で引数の範囲が指定されているときに使う。

double RoundPi(double x)
{
    double p = 1.0 / (2.0 * PI);
    int a = static_cast<int>(x * p);
    double b = 2.0 * PI * a;
    double d = x - b;
    if(d < -PI)
        d += 2.0 * PI;
    else if(d > PI)
        d -= 2.0 * PI;
    return d;
}

もっと簡単に求める方法がある気もする。

追記、かなり間違ってたので修正した。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。