デバイスの角度(向き)をドライバから取得できます。
デバイスが3Dなので3値取得できるようですが、実際には2値と基準点の異なる1値の計3値となっているようです。

角度は、ドライバで加速度・ジャイロセンサーの値から計算して算出している値となります。値を見ている感じでは、意図した値になっているようです。

回転する際の軸は以下の図のXY(Z)軸(図Axis)となります。
図Axis

値1:

図AxisのX軸を回転軸とし、それを地面と水平にした状態で回転させた際の角度が設定されます。
 
状態1-1:
デバイスを地面と水平の状態で0となり、地面に対して直立したような状態(図1-1)で90。
図1-1 地面に対して直立している状態
状態1-1で地面との接点を起点に、写真奥側に向けてデバイスを倒していくと値が減っていく。

状態1-2:
デバイスが地面と水平になった状態(図1-2)で0。
図1-2 地面と水平になった状態
デバイス上部を起点にデバイスを倒立させていくと値がさらに減っていく(マイナス)。

状態1-3:
デバイスが倒立させた状態(図1-3)で-90。
図1-3 地面に対して倒立している状態

そのままデバイスを地面との接点を起点にして、図1-3の手前方向に倒していくと値がさらに減っていく(マイナス)。

状態1-4:
図1-2の表裏反対の状態(図1-4)で-180(または180)
図1-4 表裏反対の状態

そのまま状態1-1に向かうように回転していくと回転直後にー180→180に切り替わり、状態1-1に近づくにつれて値が減り90に近づいていく。

値2:

図AxisのY軸を回転軸とし、それを地面と水平にした状態で回転させた際の角度が設定されます。

状態2-1:
デバイスを地面と水平になった状態(図2-1)で0。
図2-1  地面と水平になった状態
となり、デバイス左端を起点に回転させていくと、値が減っていく。

状態2-2:
デバイス左端を地面との接点にした状態で直立させた状態(図2-2)でー90。
図2-2 デバイス左端を起点にした直立
そのままデバイス左端を起点に図2-2の手前側に向けて倒していくと値が増えていく。

状態2-3:
そのまま回転させて、デバイスの表裏反転した状態(図2-3)で0に戻る。
図2-3 表裏反対の状態
状態2-1に戻るように回転すると、値が増えていき、状態2-1に戻るときに値が0に戻る。

値3:

状態3-1:
デバイスの回転方向は値1と一緒だが、基準点が異なる。
デバイスを地面に置いた状態で90となり、地面に対して垂直に立てた状態(図3-1)で0、垂直に逆立ちさせた状態(図3-2)で-180、そのままデバイスをひっくり返していくと最終的に-90になる。
図3-1 地面に対して直立している状態

図3-2 地面に対して倒立している状態

コメントの投稿