Рассчитать повороты, чтобы посмотреть на 3D-точку?

Мне нужно рассчитать 2 угла (рыскание и тангаж) для трехмерного объекта, чтобы столкнуться с произвольной трехмерной точкой. Эти вращения известны какЭйлер» вращается просто потому, что после первого вращения (скажем, Z, на основе рисунка ниже) ось Y также вращается вместе с объектом.

Это код, который яЯ использую, но он не работает полностью. Находясь на плоскости земли (Y = 0), объект правильно вращается в направлении точки, но как только я переместил точку вверх по Y, вращения нене выглядишь правильно.

// x, y, z represent a fractional value between -[1] and [1]
// a "unit vector" of the point I need to rotate towards

yaw = Math.atan2( y, x )
pitch = Math.atan2( z, Math.sqrt( x * x + y * y ) )

Знаете ли вы, как рассчитать 2 угла Эйлера для данной точки?

На рисунке ниже показано, как я вращаюсь. Это углы, которые мне нужно рассчитать. (Единственная разница в том, что яm вращая объект в порядке X, Y, Z, а не Z, Y, X)

рис http://i53.tinypic.com/33lo6jp.jpg

Это моя система.

система координат x = вправо, y = вниз, z = дальше назадобъект по умолчанию находится в точке (0,0,1), которая обращена назадВращения имеют порядок X, Y, Z, где вращение на X является шагом, Y - отклонением, а Z - вращением.

Ответы на вопрос(4)

Ваш ответ на вопрос