SensorManager.getRotationMatrix() 메서드 설명을 보면 rotation matrix와 inclination matrix를 구해준다고 하네요

rotation matrix는 기기의 좌표계를 지구좌표계로 변형시켜주는 matrix인데, inclination matrix는 무슨 행렬인가요?

그리고 설명 중간에 보면,

[0 0 g] = R * gravity 
[0 m 0] = I * R * geomagnetic 

가 있는데, 좌변이 1X3 행렬인가요? 

g는 중력가속도를말하는 것같고, m은 지자기력을 말하는 것같은데, 왜 양변이 같게 되는지 모르겠네요.

public static boolean getRotationMatrix (float[] R, float[] I, float[] gravity, float[] geomagnetic)

Since: API Level 3

Computes the inclination matrix I as well as the rotation matrix R transforming a vector from the device coordinate system to the world's coordinate system which is defined as a direct orthonormal basis, where:

  • X is defined as the vector product Y.Z (It is tangential to the ground at the device's current location and roughly points East).
  • Y is tangential to the ground at the device's current location and points towards the magnetic North Pole.
  • Z points towards the sky and is perpendicular to the ground.

  • By definition:

    [0 0 g] = R * gravity (g = magnitude of gravity)

    [0 m 0] = I * R * geomagnetic (m = magnitude of geomagnetic field)

    R is the identity matrix when the device is aligned with the world's coordinate system, that is, when the device's X axis points toward East, the Y axis points to the North Pole and the device is facing the sky.

    I is a rotation matrix transforming the geomagnetic vector into the same coordinate space as gravity (the world's coordinate space). I is a simple rotation around the X axis. The inclination angle in radians can be computed with getInclination(float[]).