Получение вектора направления в Android

Как получить вектор направления, представляющий направление, на которое указывает задняя часть устройства относительно земных координат?

Например, если положить его на стол (экраном вверх), на нем должно быть написано [0,0,-1], а если держать вертикально лицом на север, на нем должно быть написано [1,0,0] и т. д.

Я знаю, как рассчитать его по курсу, тангажу и крену, если они относятся к земным координатам. Чтобы было ясно, я ищу не угловую скорость, а фактический текущий угол относительно плоскости, касательной к земле. Итак, если устройство держать вертикально и смотреть на север, угол «альфа» должен быть равен 0 или 360, угол «бета» должен быть равен 90, а «гамма» должен быть равен 0. Я не могу понять, как получить эти значения. либо.

Я весь день читал об API и так и не нашел, как получить ни одну из этих вещей.

public void onSensorChanged(SensorEvent event) {
    // ?    
}

Спасибо за любую информацию.

12
задан Joey 17 June 2012 в 02:49
поделиться