Угол банка от вектора вверх и смотреть на вектор? - PullRequest
0 голосов
/ 14 июня 2010

Я не могу понять формулу для вычисления угла крена (крена) из векторов вверх и наклона, хотя я чувствую, что этот угол должен быть измерен в плане, перпендикулярном вектору нахождения. Любая подсказка приветствуется. К вашему сведению, я использую WPF.

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

1 Ответ

0 голосов
/ 19 июня 2010

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

// project Y on plan perpendicular to look
Vector3D Yproj = new Vector3D(
    -(lookDirection.Y * lookDirection.X),
    1 - (lookDirection.Y * lookDirection.Y),
    -(lookDirection.Y * lookDirection.Z));
Yproj.Normalize();

// get absolute angle between Y projected and Up
double absAngle = Vector3D.AngleBetween(upDirection, Yproj);

// magic formula
Vector3D cross = Vector3D.CrossProduct(upDirection, Yproj);
double dot = Vector3D.DotProduct(lookDirection, cross);

// set actual signed angle
BDeg = (dot >= 0) ?  absAngle : -absAngle;
...