6

問題が発生しました。iPhoneのCMAttitude情報をAltitude(0~90度)とAzimuth(0~360度)に変換したい。私はグーグルで検索して、それについて議論しているいくつかのスレッドを見つけましたが、肯定的な答えが得られるスレッドはなく、クォータニオンとオイラー角について議論している記事のほとんどは、私の脳に詰め込むには数学が多すぎます!

この作業を簡単にするオープンソースの資料はありますか? または、誰かがこの変換を実行するコードを書いていますか?

編集:まず、抽象的で申し訳ありません!

方位角は、デバイスが向いている地球の表面上の方向です。北 = 0 度、北東 = 45 度、東 = 90 度、南 = 180 度などです。0 度から 360 度までの範囲:

ここに画像の説明を入力

高度は、地球の平面から空のオブジェクトまでの角度です。 ここに画像の説明を入力

ありがとう、

ラージ

4

1 に答える 1

4

CMDeviceMotionを使用すると、「ロール、ピッチ、ヨー」を含むCMAttitudeオブジェクトを取得できます。たとえば、ポートレートモードで保持されている電話の場合、「ヨー」は「方位角」、「ピッチ」は地面に対する電話の傾きです。 、または天頂、および「ロール」は、画面を指すベクトルに関するものであり、関心のあるものではありません。

「方位角」は、3D磁気ベクトル(磁北極を指す)をデバイスの向きに応じて変化する平らな「グランド」プレーンに投影するため、少し注意が必要ですが、この用語の理解を踏まえると、スレッドこのように、はるかに理解しやすいはずです。アプリケーションを1つの方向でのみ動作させる必要がある場合は、作業がはるかに簡単になります。

PSの「高度」は、ほとんどの場合、特定の参照(海面、測地高さなど)に関する標高または高さを指すために使用されます。「Zenith」または「pitch」が推奨されます。iOSを使用しているため、(lat、lon、alt)、(pitch、yaw、roll)の座標スキームに固執する必要があります。

于 2011-05-03T16:13:11.017 に答える