2016-09-15 1 views
1

Core Motionフレームワークを使用する場合、CMMotionManagerの軸の値がaccelerometerDataの場合、1と-1の間の値が得られます。加速度計の力の値を度に変換する方法

あなたが直面している画面で電話を保持し、その後90度左に回転させた場合は、X方向に-1g値を取得します。それを正しく回転すると、1gの値が表示されます。

私はどのように私は、この変換を行うことができ、これらの値は度として表現されるようにしたいですか?

+0

私はそれらの間に何らかの関係が見当たりません。 1gは、軸の半径、速度、回転している時間に応じて90度だけ意味します。私はあなたの携帯電話がコンパスのように、その角度を決定するために使用できる他のセンサーを持っていると確信しています。 – Havenard

+0

1gは単なる力です。その力がどれほど長くかかっているかについては何も言わず、指示を与えるために使うこともできません。 1gの力で電話を1度回すことができます。または1gの力で電話を完全に回すこともできます。 –

+1

@MarcB 1gは、電話が休息しているときの重力です。回転運動に起因する力ではないので、一定です。 – Paulw11

答えて

1

このような変換を行う必要はありません。から角度を得ることができるので、CMMotionManagerインスタンスです。

ている角度:答えたことすべてに

self.motionManager = [[CMMotionManager alloc] init]; 
[self.motionManager startDeviceMotionUpdates]; 

CMDeviceMotion *deviceMotion = self.motionManager.deviceMotion; 
const CGFloat currentXDegrees = radiansToDegrees(deviceMotion.attitude.roll); 
const CGFloat currentYDegrees = radiansToDegrees(deviceMotion.attitude.pitch); 

感謝。

関連する問題