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);
両方のXYポイント構造体であるstartPointとを指定して、スワイプタッチイベントの方向を計算していendPointます。コードはiPhone用ですが、サポートatan2f()する言語であれば何でも可能です。