Как получить Yaw, Pitch and Roll из трехмерного вектора

Есть один:

void a () {
    if (Math.random() < 0.5) {
        int x = 1;
    }
}

Компилятор не отвечает за разработку и тестирование алгоритма. Вы.

Но, возможно, вам стоит предложить более практичный вариант использования. Ваш пример на самом деле не показывает, какова ваша цель.

13
задан Jack 6 May 2010 в 16:18
поделиться

2 ответа

Вы, вероятно, на самом деле не хотите рыскания, тангажа и крена.Вам просто нужно правильное преобразование. Попробуйте использовать gluLookAt для его сборки. Документация.

8
ответ дан 1 December 2019 в 18:49
поделиться

Вы не можете получить рысканье, тангаж и крен из вектора направления, поскольку вектор направления только указывает, в каком направлении смотреть (рысканье и тангаж)

Чтобы получить рысканье и тангаж, вы используете тригонометрию - я предполагаю, что у вас есть некоторые рабочие знания. Посмотрите на этой странице вики несколько полезных диаграмм для визуализации углов.

Пусть Y = рыскание, P = тангаж.

Сначала для получения рысканья нужно:

tan(Y) = x/(-y)

Теперь для получения тангажа:

tan(P) = sqrt(x^2 + y^2)/z

Чтобы получить фактические значения Y и P, нужно использовать обратный тангенс, я написал его выше, используя тангенс, чтобы сделать вывод более понятным.

Обратите внимание, что знаки минус зависят от того, как вы определяете углы и оси, но вы должны понять идею.

Затем вы можете установить значение roll равным 0 или любым другим.

16
ответ дан 1 December 2019 в 18:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: