iPhoneの回転軸を見つけようとしています。これが私のアプローチです:
ステップ 1: 回転行列を取得する - cur_rotM
ステップ 2: 回転行列が prv_rotM と異なるかどうかを確認します。pre_rotM が存在しない場合、ループをスキップし、cur_rotM の値を pre_rotM に割り当てます。この時点では、回転行列のすべての要素を単純に比較 (減算) して、有意差があるかどうかを確認しています。
ステップ 3: cur_rotM と prv_rotM に大きな違いがある場合は、次の式を使用して回転行列を計算します: r = prv_rotM * 転置 (cur_rotM)
ステップ 4: 回転軸: {r32-r23, r13-r31, r21-r12}; また、atan2(x,y) を使用して回転角度を計算しました。ここで、x は回転行列の大きさで、y は (r11 + r22 + r33 - 1) です。
ステップ 5: cur_rotM を prv_rotM に割り当て、サイクルを繰り返す
コア モーション フレームワークを使用し、iPhone デバイスを使用して、参照フレーム XTrueNorthZVertical を使用して、iOS プラットフォームでプログラミングしています。私の質問は次のとおりです。
回転軸 - これらの数字は何ですか - 水平面上で電話を回転させると、すべての数字がゼロに近くなります。他の軸でデバイスを回転させると、同じ軸を中心に回転している場合でも、非常に小さな数字が表示され、変化し続けます。
私はこれを 1/60 周波数で行っており、回転行列の意味のある変化のためのフィルターでは、デバイスを高速で移動する必要があります。そのため、1 つの円弧の動きの間に複数の読み取り値が得られます (すべて同じ軸を示す必要があります)。しかし、それは私が見ているものではありません。
ユニットはありますか?2 つの軸ベクトルを takt し、それらの間の最短距離を見つけるとしたら、測定単位は何になりますか?
この質問が理にかなっているか、明確にする必要があるかどうか教えてください。
どうもありがとう、A