Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Quaternion - (x, y, z, w)... ...не могу врубиться :( 
:(
    Опции темы
mr.DUDA
Дата 17.7.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Ребят, кто-нибудь может объяснить сабж ?
Кватернион - это вектор с добавленной четвёртой составляющей, смысл которой - "угол поворота". Введён в качестве замены матрицам 4x4, т.к. по идее полностью содержит все их данные в компактном виде.

Во что я не могу "вьехать" - так это в то, какой смысл вкладывается в сочетание (x, y, z, w)... Если задать значения "обычных" координат кватерниона - всё ок. Начинаешь изменять w - и всё плывёт ! Невозможно даже определить законы, по которым x, y и z зависят от w !

В принципе, кватернион очень круто выручает в ситуации, если нужно "плавно перенести точку А в точку В, зная их координаты (x, y, z)". Для этого используется общепринятая ф-ция Slerp (Spherical Linear Interpolation). Но вот в ситуации, когда есть сфера, заданная векторами AxisX, AxisY, AxisZ, и хочется "по-простому" провращать точку от нулевого положения к определённым углам от осей X, Y, Z - тут уже кватернионы становятся поистине китайской грамотой... smile

Пожалуйста, кто-нибудь, кто может - помогите разобраться в трёхмерной арифметике ! Или хотя бы на пальцах объясните, как вычислять трёхмерные преобразования "по простому" ?

smile


--------------------
user posted image
PM MAIL WWW   Вверх
Alastis
Дата 18.7.2005, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 15.11.2004
Где: Казахстан, Астана

Репутация: 2
Всего: 10



mr.DUDA
насколько я знаю, кватернионы используется в тех случаях, когда необходима интерполяция между различными положения объекта. Это требуется когда необходимо хранить вращение, если использовать углы Эйлера или матрицы, интерполяция будет довольно дорогостоящая.
В кватернионе компоненты {x, y, z} - вектор, , лежащий на оси вращения, а длина вектора зависит от угла поворота. w зависит только от величины угла поворота.
Насчет зависимости x, y, z от w - она такая: если взять единичный вектор V = {x, y, z} за ось вращения и угол alpha за вращение вокруг этой оси, тогда кватернион представляющий это вращение можно записать как:

q = [ V*sin(alpha/2), cos(alpha/2) ]

Для понимания того, как хранит вращение кватернион, вспомни про двумерные вращения. Вращение в плоскости можно задать матрицей 2x2, в которой будут записаны косинусы и синусы угла поворота. Можно представить, что кватернион хранит комбинацию оси вращения и матрицы половины поворота вокруг этой оси.

Вообще более подробно про кватернионы можно посмотреть тут и тут. Собственно оттуда я и освежал свою памятьsmile

Это сообщение отредактировал(а) Alastis - 18.7.2005, 09:13


--------------------
Прости, что я говорю, когда ты меня перебиваешь.
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 18.7.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Alastis, спасибо !


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0411 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.