Вращение и OpenGL Матрицы - PullRequest
       27

Вращение и OpenGL Матрицы

1 голос
/ 12 февраля 2009

У меня есть класс, который содержит матрицу 4x4 для масштабирования и перевода. Как бы я реализовать методы поворота для этого класса? И нужно ли реализовывать поворот как отдельную матрицу?

Ответы [ 5 ]

3 голосов
/ 12 февраля 2009

Вы можете умножить свою текущую матрицу на матрицу вращения. Взгляните на http://en.wikipedia.org/wiki/Rotation_matrix

1 голос
/ 12 февраля 2009

Отвечая на вторую половину вопроса, одиночная матрица 4x4 вполне способна удерживать масштабирование, перемещение и вращение. Поэтому, если вы не наложите особые ограничения на то, какие матрицы 4x4 вы можете обрабатывать, один 4x4 - это то, что вам нужно.

Что касается вращения вокруг произвольного вектора (как вы просите в комментариях), посмотрите раздел «Вращение вокруг произвольного вектора» в статье в Википедии, на которую ссылается yabcok. Вы захотите расширить это до матрицы 4x4, дополнив ее нулями, за исключением позиции 4,4 (масштабирование), которая должна быть равна единице. Затем используйте умножение матриц с масштабированием / трансляцией 4x4, чтобы сгенерировать новую матрицу 4x4.

1 голос
/ 12 февраля 2009

Есть сайт, который я использую каждый раз, когда мне нужно просмотреть детали 3D-преобразования, называемый http://www.euclideanspace.com.. Здесь можно найти конкретную страницу о поворотах матрицы здесь .

Редактировать: Поворот вокруг заданной оси, посмотреть на представление ось и угол . Эта страница также ссылается на описание того, как перевести одно представление в другое.

Если вам нужно вращаться вокруг нескольких осей, просто умножьте соответствующие матрицы.

0 голосов
/ 31 октября 2010

Эта страница содержит довольно много полезной информации:
http://knol.google.com/k/matrices-for-3d-applications-translation-rotation

0 голосов
/ 12 февраля 2009

Вы хотите убедиться, что найдете ссылку, в которой говорится о правильном виде матрицы, используемой для компьютерной графики (а именно о трехмерных однородных координатах с использованием матрицы преобразования 4x4 для вращения / перемещения / перекоса).

См. «Библию» компьютерной графики, такую ​​как Фоли и Ван Дам ( стр. 213 ), или одну из них:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...