2016年12月12日月曜日

角度の正規化

数ある角度の表現方法の中で、-180度から+180度、もしくは-PIから+PIの範囲への正規化。

public static double DegreesNormalize(double Degrees)
{
    return (RadiansNormalize(Degrees * Math.PI / 180) * 180 / Math.PI);
}

public static double RadiansNormalize(double Radians)
{
    return (Math.Atan2(Math.Sin(Radians), Math.Cos(Radians)));
}

たぶんこれで動くはず。whileやforで回してるわけではないので処理速度は常に一定となる(はず)。おそらく処理系依存ではないと思うけど、ExcelみたいなXとYが逆ってこともあるのでちゃんと確認してから使うように。

0 件のコメント:

コメントを投稿