2012-04-17 18 views
3

地平線を描くなど、地面に基づいてCMAttitudeを参照したいと考えています。リファレンスを取得CoreMotionの地面からのCMAttitude(aTitude、aLtitude)

実際には、いつでも参照姿勢を取得し、multiplyByInverseOfAttitudeを使用して以前の姿勢と比較してハンドセットの回転を取得することで、ビューを回転できます。それはいいです。

しかし、私は最初に地面のためにそれを得る方法を見つけることができません。私は主にポートレートモード、IOS5で、CMAttitudeReferenceFrameXTrueNorthZVerticalを使用しています(CoreLocationも使用しています)。

バブルレベルやティーポットのサンプル(アクセラレータを使用している)を見たことがありますが、私のデバイスモーションの姿勢に関する簡単な答えやサンプルは見つかりませんでした。私はおそらく何かが欠けているでしょう。

ありがとうございました。

答えて

3

私自身の答えです。

実際、私は基準姿勢の使用を考えて間違った方向にいました。私はちょうどこのようなdeviceMotionオブジェクトで利用可能な重力から回転角を計算する必要がありました:

double rotation = atan2(dm.gravity.x, dm.gravity.y) - M_PI; 
+0

どのような回転角度をあなたがこのように計算するのか分かりますか? – sam

+0

これは、iPhoneの画面が地面(水平線)のレベルを基準にした角度で​​す。 – Spi

+0

ジャイロの回転速度を定義済みの方向に関して更新する考えはありますか? – sam

関連する問題