Вращение единичного вектора в случайной точке на угол вдоль оси Y в трехмерном пространстве - PullRequest
0 голосов
/ 27 августа 2018

Я также приложил схему, чтобы изобразить мой вопрос.

  1. Мне нужно повернуть вектор V с базовой точкой P на угол и найти новый вектор V '.

  2. Говорят, что ось вращения находится около локальной оси y в точке P (которая параллельна глобальной оси Y)

  3. Впоследствии,Мне нужно повернуть начальный вектор V вокруг оси x, которая параллельна глобальной оси Y.

Основная причина вращения состоит в том, чтобы найти новый вектор V 'в точке P. Оба вращения независимы, и каждое из вращений дает новый V'.Я программирую это на VB.net и выводим double () нового вектора V '.

e

1 Ответ

0 голосов
/ 27 августа 2018

Просто примените два поворота независимо (см. Википедия ).Базовая точка не играет никакой роли в этом, потому что это просто постоянное смещение, которое никогда не меняется.Если я правильно понял ваше описание, вы хотите следующее:

//rotation about y-axis
iAfterRot1 = cos(phi1) * i + sin(phi1) * k
jAfterRot1 = j 
kAfterRot1 = -sin(phi1) * i + cos(phi) * k

//rotation about x-axis
iAfterRot2 = iAfterRot1
jAfterRot2 = cos(phi2) * jAfterRot1 - sin(phi2) * kAfterRot1
kAfterRot2 = sin(phi2) * jAfterRot1 + cos(phi2) * kAfterRot1
...