Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / ЧАВО по матрицам и кватернионам (комментарии) (3 стр)

ЧАВО по матрицам и кватернионам (комментарии) (3 стр)

Страницы: 1 2 3
MarkoPoloПостоялецwww21 мар. 201118:48#30
Aneroun
> Вот это супер! если бы все учебники были написаны так то математика была бы
> гораздо более простой наукой.
Фух... хоть кому-то понравилось. +_+
PixarПостоялецwww21 мар. 201123:37#31
Aneroun
> Вот это супер! если бы все учебники были написаны так то математика была бы
> гораздо более простой наукой. А то понавводят понятий начнут грузить свойствами
> а что это такое объяснить забудут.
Определитель (в 3D) - это ЧИСЛО, обозначающее ОБЪЁМ параллелепипеда, чьи стороны представляют собой 3-и базисных вектора {(1, 0, 0), (0, 1, 0), (0, 0, 1)} после преобразования данной матрицей (умножение = преобразование). Если матрица единичная, то базисные вектора не меняются - следовательно, куб остаётся кубом (с объёмом = детерминанту = 1). Если объём получился отрицательный (det < 0), это интерпретируется так, что матрица содержит в себе отражение.
Определитель связан с ИЗМЕНЕНИЕМ в размерах, которое происходит после трансформации (перемножения). В 2D определитель показывает, как изменится площадь, а в 3D - объём. Допустим, det = 0.5 = 1/2. Это значит, что площадь (объём) фигуры уменьшится в 2 раза после преобразования. Таким образом, абсолютное значение определителя интерпретируется как коэффициент сжатия / масштабирования.
С помощью определителя можно классифицировать вид преобразования, которое несёт в себе матрица. Если det = 0, то матрица содержит проекцию. Если det < 0 - отражение.

Если подумать о сути самой матрицы в 3D, то она как бы связывает два пространства (векторных), показывая как они соотносятся. Само пространство (математическое = воображаемое) определяется базисными векторами. Нет базисных векторов - нет пространства. Сами базисные вектора ничем не определяются. Но векторных пространств может быть великое множество (даже одной размерности), а как их различать? По форме базисных векторов не получится, так как они имеют общий вид: {(1, 0, 0), (0, 1, 0), (0, 0, 1)}. Остаётся только задать, как соотносятся друг с другом сами базисные вектора двух(!) различных пространств. Для этого и существуют матрицы. Матрицы как бы портал в другое пространство, другую вселенную или, если хотите, параллельные миры... :)

dyvniyПостоялецwww26 сен. 20119:24#32
Что-то я во всех комментариях не заметил мысль,
что OpenGL-евские матрицы, в отличие от DirectX-овых и стандартных-математических,
позволяют домножать справа, то есть использовать оператор *= .
Если попробовать такое в directx, результат будет неожиданным.
Vladi-mirПостоялецwww26 сен. 201121:53#33
По мойму в авиации не рыск, качение и тангаж, а направление, крен и тангаж :)
soflotПостоялецwww25 сен. 20120:29#34
Спасибо большое, почитал и всё-таки разобрался. Сначала правда не понял что за X Y Z W в пункте "Как мне перевести кватернион в матрицу вращения", просто подставлял туда вектор вращения и угол. Только потом дошло что надо сначала вектор вращения и угол перевести в кватернион формулой из пункта "Как мне преобразовать угол вращения ось в кватернион". Для меня это оказалось не очевидно, сразу не понял.
andycountПостоялецwww17 июня 201419:04#35
> Кватернион может быть преобразован обратно в ось и угол следующим алгоритмом:
>.........
      sa = 1;
чё за переменная ?
MarkoPoloПостоялецwww17 июня 201419:20#36
andycount
> чё за переменная ?
sa - sin_angle
MarkoPoloПостоялецwww17 июня 201419:21#37
Блин, все собираюсь до конца привести статью в порядок, но понимаю, что она слишком монументальна чтобы ее за раз собрать.
MarkoPoloПостоялецwww17 июня 201419:24#38
Vladi-mir
> По мойму в авиации не рыск, качение и тангаж, а направление, крен и тангаж :)
Хоть это и копание, но все-таки отвечу.

http://ru.wikipedia.org/wiki/%D0%A0%D1%8B%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5

Сам я не особо в авиации, но понятие рыскание прям из вики взял.

Anders333Постоялецwww28 фев. 201612:59#39
Столкнулся с необходимостью перевести кватрнионс одной КС в другую.
Есть матрица родная для кватерниона:
1,0,0
0,0,1
0,-1,0
Она указывает направление осей в обычной КС.
В статье есть вот такой аглоритм нахождения матрицы поворота между координатными системами:
+ Показать

Можно-ли использовать этот способ или лучше искать другой для перевода кватернион в иную СК?
MrOcelotПостоялецwww25 апр. 201618:52#40
Ну пофиксите уже формулы до конца, читать невозможно.
Страницы: 1 2 3

/ Форум / Программирование игр / Общее

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр