Простая арифметическая задача для учителей (о вращении координатной плоскости методом непривычных извращений) Буквами i, j будем обозначать единичные орты, направленные вдоль Ox и Oy соответственно, ориентация координатных осей стандартная, и, совпадение, буквами i, j, k будем обозначать кватернионные мнимые единицы.
Общая задача такова: Мы хотим вектор a*i + b*j повернуть на угол ф, а делать это будем так: кватернион v = i*a + j*b; кватернион q = cos(ф/2) + k*sin(ф/2) кватернион r = q*v*q^(-1). Искомый вектор - это кватернион r, у которого отрезаны первая и последняя координаты (т.е. отрезаны действительная часть и слагаемое с k). Замечание. Единичный по модулю кватернион обращается, подобно комплексному числу, сопряжением - т.е. умножением мнимой части на -1, мнимая часть у нас в трехмерном ijk-пространстве живет.
Вопрос: В какую сторону повернется-то наш вектор на угол ф, по часовой стрелке, или же против часовой?
Чтобы ответить на ваш вопрос, нужно понимать, как работает вращение векторного пространства с помощью кватернионов. В данной задаче у нас есть векторы, которые мы поворачиваем в плоскости XY.
Кватернионный подход заключается в использовании кватерниона:
[ q = \cos(\phi/2) + k\sin(\phi/2) ]
где (\phi) - это угол поворота. Обратите внимание, что вектор (v) представляется в виде:
[ v = i \cdot a + j \cdot b ]
Здесь (a) и (b) — это компоненты вектора, который мы хотим повернуть.
Важно помнить, что кватернионы используют правило умножения, которое отличается от обычного векторного произведения. При умножении ( r = qvq^{-1} ) происходит комбинация поворота и отражения в соответствующих осях.
Так как кватернион (q) задает вращение вокруг оси z (в данном случае направленной вдоль (k)) на угол (\phi), этот способ поворота соответствует тому, как вращается вектор в двумерном пространстве.
Для стандартной (правосторонней) системы координат в плоскости XY соблюдаются следующие правила:
Если угол (\phi) положительный, то направление поворота будет против часовой стрелки.Если угол (\phi) отрицательный, то направление поворота будет по часовой стрелке.
Таким образом, в вашей задаче, если угол (\phi) положителен, то вектор (ai + bj) повернется против часовой стрелки. Если же (\phi) отрицателен, то поворот будет по часовой стрелке.
Чтобы ответить на ваш вопрос, нужно понимать, как работает вращение векторного пространства с помощью кватернионов. В данной задаче у нас есть векторы, которые мы поворачиваем в плоскости XY.
Кватернионный подход заключается в использовании кватерниона:
[
q = \cos(\phi/2) + k\sin(\phi/2)
]
где (\phi) - это угол поворота. Обратите внимание, что вектор (v) представляется в виде:
[
v = i \cdot a + j \cdot b
]
Здесь (a) и (b) — это компоненты вектора, который мы хотим повернуть.
Важно помнить, что кватернионы используют правило умножения, которое отличается от обычного векторного произведения. При умножении ( r = qvq^{-1} ) происходит комбинация поворота и отражения в соответствующих осях.
Так как кватернион (q) задает вращение вокруг оси z (в данном случае направленной вдоль (k)) на угол (\phi), этот способ поворота соответствует тому, как вращается вектор в двумерном пространстве.
Для стандартной (правосторонней) системы координат в плоскости XY соблюдаются следующие правила:
Если угол (\phi) положительный, то направление поворота будет против часовой стрелки.Если угол (\phi) отрицательный, то направление поворота будет по часовой стрелке.Таким образом, в вашей задаче, если угол (\phi) положителен, то вектор (ai + bj) повернется против часовой стрелки. Если же (\phi) отрицателен, то поворот будет по часовой стрелке.