2

ある座標 (電話の底) から位置の角度を与えるアプリを書きたいと考えています。

たとえば... 電話を 45 度の角度で持っている場合、画面に 45 度と表示します。ユーザーが電話を 45 度保持し、イヤホンからホーム ボタンに向かう軸を中心に電話を回転させた場合、その角度 (0 ~ 180 度) を表示したいと考えています。

加速度計を実装し、x、y、z 値を取得しましたが、どのように変換すればよいですか? 私はそれらが G (それぞれの軸で 1G、0.9G、-0.5G) であることを知っていますが、変換は何ですか? 私は正しい軌道に乗っていますか?代わりにジャイロスコープを使用する必要がありますか?

ありがとう。

4

2 に答える 2

3

この質問には例があります。を使用atan2(y, x)して、ラジアンから度に変換できます* (180/M_PI)

実引数 x と y の両方がゼロに等しくない場合、atan2(y, x) は、平面の正の x 軸とその座標 (x, y) によって指定される点との間のラジアン単位の角度です。

-atan2に関するウィキペディアの記事

于 2011-09-23T00:02:10.873 に答える
0

ジャイロスコープのサポートに頼ることができる場合は、それを使用することをお勧めします。これは、(オイラー) 角度を計算なしで直接取得できるためです。iOS - ジャイロスコープのサンプルを参照し、内部のリンクに従ってください。

UIAccelerometer は間もなく非推奨になるため、使用しないでください。古いデバイスであっても、新しい CoreMotion フレームワークは常により良い選択です。

于 2011-09-23T11:38:34.980 に答える