Показать сообщение отдельно
  #5  
Старый 28.11.2017, 10:47
PavelG2010 PavelG2010 вне форума
Прохожий
 
Регистрация: 24.03.2014
Сообщения: 5
Версия Delphi: Delphi xe2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Да так вообще ошибка должна быть - заявляется параметр P2, а плюсуется какой-то неизвестный P
Там нет ошибки это опечатка с P и P2 это опечатка в примере.

Я создаю кватернионы
на угол по оси X на 10 градусов = QX (w = 0,9961; x = 0,0871; y = 0; z = 0)
на угол по оси Y на 10 градусов = QY (w = 0,9961; x = 0; y = 0,0871; z = 0)
на угол по оси Z на 10 градусов = QZ (w = 0,9961; x = 0; y = 0; z = 0,0871)
и перемножаю их Q1:=QX*QY*QZ
Q1 – получается кватернион первого поворота.
(w = 0,9879; x = 0,0940; y = 0,0789; z = 0,0940)

Соответственно потом создаю кватернионы для второй группы поворотов
на угол по оси X на 10 градусов = QX (w = 0,9961; x = 0,0871; y = 0; z = 0)
на угол по оси Y на 10 градусов = QY (w = 0,9961; x = 0; y = 0,0871; z = 0)
на угол по оси Z на 10 градусов = QZ (w = 0,9961; x = 0; y = 0; z = 0,0871)
и перемножаю их на кватернион первого поворота
Q2:=Q1*QX*QY*QZ (w = 0,9521; x = 0,1858; y = 0,1559; z = 0,1858)
Получаю из кватерниона Q2 углы
X = 11,6920862197876
Y = 7,94708204269409
Z = 11,6920862197876

Умножения соответственно выполняются по правилам умножениям кватернионов
Ответить с цитированием