質問

私は取得できると思います cmattitude デバイスから、そこから必要な3つの値(ピッチ、ロール、ヨー)を読むことができます。私が理解しているように、このcmattitudeオブジェクトは、コンパス、ジャイロ、加速度計の正しい結果を一緒に計算するためのセンサー融合マネージャーであるCoremotionによって管理されています(AndroidではSensormanagerクラスです)。

だから私の質問は次のとおりです。

  1. それらの値(ピッチ、ロール、ヨー)は磁気北部と重力と比較していますか?

  2. 上記が正しい場合、どのように変更して、地理的北に比べて結果を与えることができますか?

  3. デバイス(iPhone 3GSなど)にジャイロスコープがない場合、マネージャーに伝える必要がありますか、それとも持っているセンサーに基づいてデバイスの態度を与えるように伝えることはできますか?ACC + Gyro +コンパス また ACC +コンパス)

役に立ちましたか?

解決

  1. と2:

iOS 5.0はこのタスクを簡素化します。 Cmmotion Managerには新しい方法があります:


- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame

参照フレームとして、この値を使用できます。

  • cmattitudereferenceframexmagneticnorthzvertical for Magnetic North、
  • cmattitudereferenceframextruenorthzvertical真の北のための。

古いiOSでこれを行いたい場合は、現在のユーザーの場所を使用して自分でこれを調整する必要があるのではないかと心配しています。

このリソースをチェックアウトしてみてください:

3.デバイスにジャイロがない場合、cmmotionmangerのDevicemotionableプロパティは「いいえ」(Gyroavaible Propertyに相当)であり、デバイスの動きを使用して態度を得ることができません。あなたができる唯一のことは、加速度計と磁力計のデータを直接読むことです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top