У нас есть точка откуда смотрит камера: ax,ay,az
У нас есть точка куда смотрит камера: bx,by,bz
Мне нужны уравнения с помощью каких реализуется управление камерой относительно координат .
перемещение без поворотов - здесь не возникает трудностей:
вдоль оси х
ax=ax+1,
bx=bx+1,
вдоль оси y
ay=ay+1,
by=by+1,
вдоль оси z
az=az+1
bz=bz+1
А как поступить если мы повернули точку bx,by,bz, ведь теперь нам нада перемещатся вдоль вектора взгляда. Вот это мне и надо.
допутим мы смотрим из точки ax=0,ay=1,az=0 в точку bx=0,by=1,bz=1
чтоб переместить камеру вперед мы просто пишим:
az=az+1
bz=bz+1
и в результате мы смотрим из точки ax=0,ay=1,az=1 в точку bx=0,by=1,bz=2
Но если мы повернем камеру влево
ax=0,ay=1,az=0
bx=0,5,by=1,bz=0,5
то (то что я прошу от вас) каким уравнением описать движение из точки
ax=0,ay=1,az=0 в точку bx=0,5,by=1,bz=0,5
Если не понятно обьяснил - напишите, я попробую обьяснить еще раз
Спасибо.
Введем вектор, у которого в качестве начала возьмем точку откуда смотрит камера, а конца - куда.
Далее можете поворачивать этот вектор с помощью матриц поворота. Сам поворот происходит путём умножения матрицы поворота на вектор, описывающий вращаемую точку:
Матрицами вращения М вокруг оси декартовой правой системы координат на угол α в трёхмерном пространстве являются:
Вращение вокруг оси x:
Вращение вокруг оси y:
Вращение вокруг оси y:
Тогда координаты точки куда смотрит камера (после поворота) можна найти: .
Думаю должно получится. Если будут вопросы, спрашивайте.
Следующая тема Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах