0

デバイスの動きに関連する一見簡単な問題を解決しようとしていますが、解決方法がわかりません。iPhone が xy 平面で円を描いて移動する状況があります。回転の中心に対する iPhone の x 軸と y 軸の間の角度を見つける必要があります。iPhone は、縦向きモードまたは横向きモード、または iPhone と回転の中心を結ぶ線に対してその間の任意の角度にある可能性があります。シナリオを説明する添付の図を参照してください。

特定の回転に対するヨーの変化は、この角度に関係なく同じであるため、実際には役に立ちません。小さな回転ごとに計算して、モーション全体に最適な関係を見つけることができる関係があることを願っていますが、まだそれを理解することはできません.

助けや指針をいただければ幸いです。

ここに画像の説明を入力

4

1 に答える 1

0

(使用しているAPIがわからないので疑似コードで書いています、ごめんなさい。)

回転の軸と角度を取得する方法は次のとおりです。

回転マトリックスR1を取得し、回転R2の開始時と終了時に API から直接取得します (CMAttitude と CMRotationMatrix を参照してください)。次に、と整列させる回転のangleとを決定します。次のようになります。axisRR1R2R

R = R1 * transpose(R2)

回転角R

angle = acos((trace(R)-1)/2)

そしてその軸は

axis = { R[3][2]-R[2][3], R[1][3]-R[3][1], R[2][1]-R[1][2] }

詳細については、Rotation matrix to axis angleおよびAxis-angleを確認してください。


興味のある角度を取得する方法がわかりません。それにもかかわらず、上記が役立つことを願っています。


ロール、ピッチ、ヨーは表示以外には使用しないでください。そして、それらを統合しようとしないでください。良いものは何も生まれません。

とにかく、回転行列の背後には統合があります。つまり、誰かがすでに統合を行っているということです。

于 2013-08-05T22:57:17.713 に答える