Что такое кватернион — объяснение человеческим языком

Для закончивших ВУЗ данный вопрос не представляет проблемы, а для нас, учащихся ПТУ и техникумов, это тайна за семью замками. Особенно если вы, как и я, постоянно прогуливали высшую математику.

Цитата из википедии: Кватернио́ны (от лат. quaterni, по четыре) — система гиперкомплексных чисел, предложенная Гамильтоном в 1843 году.. Вы что-нибудь поняли? Значит дальше вам читать не надо, до свидания! Заходите еще..

Кватернион — это ось, относительно которой будем вращать объект и угол, на который мы будем вращать объект относительно этой оси. Всего у кватерниона четыре компоненты: X, Y, Z и W. XYZ — та самая ось поворота (нормализуем и каждый компонент умножаем на синус половины угла), W — угол поворота (который задается через косинус половины угла).

Псевдокод получения кватерниона из угла и оси:

def quatFromAngleAxis(self, a, x, y, z):
    # Длина вектора xyz
    l = sqrt(x * x + y * y + z * z)
    # Нормализуем вектор xyz
    x = x / l
    y = y / l
    z = z / l
    # Синус половины угла (a - угол в радианах)
    hSin = sin(a / 2)
    # Заполняем xyz
    self.x = x * hSin
    self.y = y * hSin
    self.z = z * hSin
    # Косинус половины угла
    hCos = cos(a / 2)
    # Заполняем w
    self.w = hCos

Важно помнить, что кватернион не задает результат, через него выражается действие, которое можно применить к какому-либо объекту в пространстве.

Ещё более простым языком: представьте, что у вас есть некий объект, допустим яблоко, вы протыкаете его спицей и вращаете. Так вот спица — это ось вращения, её направление — наш вектор (x, y, z), а угол вращения — это наш угол a, который означает насколько вы повернули яблоко на спице по часовой стрелке или против.

Если вас приводит в недоумение термин «матрица», рекомендую почитать заметку: Что такое матрица 4×4 в трехмерных играх?

8 комментариев
  1. написал(а) Сергей Промзинский (14 марта 2018, 21:27)

    Почему в коде 3 строка x^x и т д, когда либо x^2 либо x*x???

    1. написал(а) eJ (29 марта 2018, 15:45)

      Спасибо, исправил. Умножение конечно же.

  2. написал(а) Аноним (18 марта 2018, 22:45)

    угол поворота который задается через косинус половины какого угла

    1. написал(а) eJ (29 марта 2018, 15:47)

      Косинуса угла поворота.

  3. написал(а) Маили (8 сентября 2021, 09:07)

    спасибо, добрый человек) Хоть кто-то снизошел до уровня простых смертных.

    1. написал(а) eJ (8 сентября 2021, 10:05)

      Пожалуйста, я и сам-то не небожитель и не всегда понимаю то, о чём пишу или говорю :-)

  4. написал(а) Александр (18 ноября 2023, 17:08)

    Это единственное адекватное объяснение в интернете и заслуживает быть на википедии самой первой строчкой. Всякие термины и формулы это уже потом.

    1. написал(а) eJ (19 ноября 2023, 09:14)

      Спасибо на добром слове.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог Евгения Жирнова