Рассчитать повороты, чтобы посмотреть на 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 - вращением.