質問自体は簡単です。 CMDeviceMotionモーションを使用する場合、CMAttitudeというタイプのattitudeというオブジェクトにロールとピッチが含まれています。ロールとピッチは、Y軸とX軸の周りのオブジェクトの回転を表します。 iPhoneがテーブルの上に置かれているときにロールとピッチが両方とも0になります。iPhoneをY軸またはX軸の周りで回転させると、これらの値が更新されます。CMAttitudeロールとピッチ計算
これらの値がどのように計算されているか知りたいと思います。デバイスの現在の重力ベクトルからロールとピッチを計算する方法があります。ピッチはピッチ= -asin(motion.gravity.y)と思われますが、ロールの計算方法はわかりません。あなたがにいるどの向きに応じて符号を変え、そしてz = 0の漸近線の周りに注意する必要がありますけれども
roll = -atan(x/z);
:それは何か可能性がありますあなたの助け
等0 -piの間であろう。 radiansToDegrees(フロートラジアン){ リターン((ラジアン)*(180.0/M_PI)); } –