4

iPhoneジャイロスコープは、ある基準姿勢に対する回転データを受け取り、それは変化しません(乗算されない限り)。iPhoneカメラを使用して壁に向かい、左に45度回転するとします(roll += PI/4。)

さて、電話を天井に向かって持ち上げると、座標空間が固定されているため、ヨーとピッチの両方が変化します(世界の座標空間、電話と一緒に移動または回転しません)。この角度を決定する方法はありますか?床面とカメラの方向ベクトル)、ロール、ヨー、ピッチが与えられていますか?

編集:別の質問を開く代わりに、ここで試してみます。Lucのソリューションは機能します。しかし、他の2つの回転角を取得するにはどうすればよいですか?投稿されたリンクの情報を読みましたが、線形代数を勉強してから何年も経ちました。実際、これはプログラミングの質問よりも数学的なものかもしれません。

4

1 に答える 1

2

私は実際にはiPhone用にコーディングしていないので、「実世界の座標」フレームであなたを信頼します。

その場合、両方のz軸のベクトル間の内積が必要です。それはあなたが探している角度のコサインをあなたに与えるでしょう、したがってかなり近いです。平面間の角度は、との間の値としてのみ実際に意味があるため90°、実際には、そのコサインに必要なすべての情報があります。

ここにはラテックスのフォーマットはありません。それ以外の場合はもう少し詳しく説明しますが、興味がある場合は このページを読んでください。ここに最終結果である3回転の回転行列を含めます。回転行列

これで、水平計画のz軸のベクトルが(0,0,1)(これを垂直ベクトルとして読みます)、この行列で回転すると、3番目の列が得られます。

(0,0,1)したがって、その3番目の列とベクトルの間に内積を入れたいので、次のようcos(β)cos(γ)になります。cos(pitch)*cos(roll)

結論として、あなたの計画の間の角度はですarccos(cos(pitch)*cos(roll))。この値は、もちろんどの方向ではなく、iPhoneがどれだけ傾いているかを示します。しかし、私たちが話したベクトル(行列の右端の列)の値からそれを解決することができます。

于 2012-11-11T22:56:20.527 に答える