1. ホーム
  2. math

[解決済み] atan2()を0-360度へマップする方法

2022-08-23 06:39:42

質問

atan2(y, x) は、180°で不連続になり、時計回りに-180°...0°に切り替わります。

値の範囲を0°...360°にマッピングするにはどうしたらよいですか?

以下は私のコードです。

CGSize deltaPoint = CGSizeMake(endPoint.x - startPoint.x, endPoint.y - startPoint.y);
float swipeBearing = atan2f(deltaPoint.height, deltaPoint.width);

が与えられたので、スワイプによるタッチイベントの方向を計算しています。 startPointendPoint は、いずれもXY点構造体です。このコードはiPhone向けですが atan2f() をサポートしている言語であれば、どの言語でも構いません。

どのように解決するのですか?

(x > 0 ? x : (2*PI + x)) * 360 / (2*PI)