Есть один:
void a () {
if (Math.random() < 0.5) {
int x = 1;
}
}
Компилятор не отвечает за разработку и тестирование алгоритма. Вы.
Но, возможно, вам стоит предложить более практичный вариант использования. Ваш пример на самом деле не показывает, какова ваша цель.
Вы, вероятно, на самом деле не хотите рыскания, тангажа и крена.Вам просто нужно правильное преобразование. Попробуйте использовать gluLookAt
для его сборки. Документация.
Вы не можете получить рысканье, тангаж и крен из вектора направления, поскольку вектор направления только указывает, в каком направлении смотреть (рысканье и тангаж)
Чтобы получить рысканье и тангаж, вы используете тригонометрию - я предполагаю, что у вас есть некоторые рабочие знания. Посмотрите на этой странице вики несколько полезных диаграмм для визуализации углов.
Пусть Y = рыскание, P = тангаж.
Сначала для получения рысканья нужно:
tan(Y) = x/(-y)
Теперь для получения тангажа:
tan(P) = sqrt(x^2 + y^2)/z
Чтобы получить фактические значения Y и P, нужно использовать обратный тангенс, я написал его выше, используя тангенс, чтобы сделать вывод более понятным.
Обратите внимание, что знаки минус зависят от того, как вы определяете углы и оси, но вы должны понять идею.
Затем вы можете установить значение roll равным 0 или любым другим.