2014-10-19 2 views
0

Я должен определить желтый вектор из рисунка ниже. То, что я знаю, это темно-зеленый вектор и вертикальная плоскость. Угол между липовым и темно-зеленым вектором составляет 90 градусов.Вращающийся вектор на плоскости в 3D

Что я могу сделать, это уравнение плоскости. И я знаю поворот вектора в плоскости, но только в 2D-мерном.

Так что я понял, что если я повернуте темно-зеленый вектор в этой плоскости на 90 градусов, а затем переместите этот новый вектор темным зеленым вектором, я создам вектор извести. После этого я добавлю, что вектор извести и темно-зеленый вектор, чтобы определить желтый вектор.

В начале я знаю темно-зеленый вектор и наш самолет.

Graphical representation of the problem

Заранее спасибо за помощь

+0

Это что-то связано с java? Или с самим программированием? – Maverick283

+0

@ Maverick283 - Мне просто нужно написать его в java :) – mroknocy

ответ

0

Посмотрите на формулу Rodrigues. Это для вращения вектора в 3D. enter image description here

Здесь

  • v вектор вы хотите повернуть.
  • к единичный вектор, описывающий ось вращения

Для получения дополнительной информации Google для формулы Rodrigues, или следовать wiki

Или вы можете использовать quaternion rotation. Это хорошо объяснено в этом ответе How does this Quaternion rotation code work?

+0

Я ничего не ищу. Как я уже говорил, формула вращения Родригеса вращает v на угол θ вокруг оси z, разлагая ее на ее компоненты, параллельные и перпендикулярные z, и вращая только перпендикулярную составляющую. Но это вращение не находится в одной плоскости точкой (0,0,0). То, что я ищу, это повернуть плоскость по точкам (0,0,0) и получить новый повернутый вектор. – mroknocy

Смежные вопросы