Расчёт углов поворота между двумя системами координат

Есть ортогональная трёхмерная система координат (OXYZ). Есть другая ортогональная система координат (OX`Y`Z`), повёрнутая относительно первой на неизвестные углы. Центры систем координат совпадают. В системе координат (OXYZ) мы знаем координаты вектора OX` и вектора OZ`. Необходимо найти матрицу поворота для перехода из системы координат (OXYZ) в (OX`Y`Z`). Помогайте, а то весь мозг себе сломал. Или подскажите в какую сторону копать.
  • Вопрос задан
  • 16073 просмотра
Решения вопроса 1
xanep
@xanep
ОМГ, в шоке от ответов про кватернионы ))

Если координаты в XYZ
OX' = (x1, y1, z1)
OY' = (x2, y2, z2)
OZ' = (x3, y3, z3)
То матрица преобразования из XYZ в X`Y`Z`
x1, x2, x3
y1, y2, y3
z1, z2, z3

Собственно практически по определению
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Cyapa
@Cyapa
Извините, если я сейчас ошибаюсь, но у вас будет две матрицы поворота. Вокруг оси X и вокруг оси Y. Вот они:

Вокруг X:
image

Вокруг Y:
image

Ну, а найти углы поворотов это элементарно:
image

Ведь у вас есть координаты OX` и OY` в исходной системе.
Ответ написан
alexeip
@alexeip
Да, некий Уильям Гамильтон тоже ломал себе мозг, вместе с коллегами. Правда, не о том. Но у них получилось такое, что и нам тоже пригодится: ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D1%82%D0%B5%D1%80%D0%BD%D0%B8%D0%BE%D0%BD%D1%8B_%D0%B8_%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0
Ответ написан
@OldFisher
Насколько я могу припомнить, если мы возьмём координаты ортов новой системы, помещённых в старую, то эти координаты и будут строками искомой матрицы.
Ответ написан
VoidVolker
@VoidVolker
Вот тут подробно и доступным языком описано использование углов Эйлера, матриц и кватернионов: www.rossprogrammproduct.com/translations/Matrix%20and%20Quaternion%20FAQ.htm
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы