Поворот линейного сегмента в 3D в заданную ориентацию

У меня есть общий сегмент линии с конечными точками ( Икс 1 , у 1 , г 1 ) и ( Икс 2 , у 2 , г 2 ) со ссылкой на трехмерную декартову систему координат E. Я хочу повернуть эту систему координат E в новую систему координат F, чтобы новая Икс -ось параллельна этому отрезку.

По сути, я ищу три уникальных угла Эйлера ( α , β , γ ) , с помощью обычного г у г соглашение, с точки зрения координат двух конечных точек в исходной системе координат. Следовательно, в новой системе координат мне нужно будет удовлетворить три уравнения: 1. у 1 "=" у 2 , 2. г 1 "=" г 2 , и 3. ( Икс 2 Икс 1 ) 2 "=" ( Икс 2 Икс 1 ) 2 + ( у 2 у 1 ) 2 + ( г 2 г 1 ) 2

Предписано ли для задачи использование углов Эйлера, или вы рассмотрите любое представление вращения (например, кватернионы)?
Предположительно, вы хотите, чтобы вращение было с центром в качестве центра?
Углы Эйлера заданы. Есть ли способ перейти от другого представления вращения к углам Эйлера?
Начало исходной и преобразованной системы координат должно совпадать.

Ответы (1)

Тогда, вероятно, легче думать об этом логически, а не напрямую в терминах спиноров/кватернионов. Вот что вы можете сделать: вы вращаете Икс ^ вектор на вектор ^ . Это можно сделать в два этапа: повернуть Икс ^ на ^ проекция на плоскость xy. Это ставит ^ на г Икс плоскости, и требуется только еще один оборот - вращение вокруг у -- выстроиться в очередь Икс ^ с ^ .

Спасибо, это именно то, что я пытался сделать последние несколько часов, но что-то не так с моими вычислениями для произвольных конечных точек.
Вычисление не должно заботиться о конечных точках, а только о направлении самой линии.
Да, спасибо. Проблема теперь решена и была связана с моим алгоритмом, а не с базовой математикой. Я использую предложенный вами метод, и он отлично работает.