Кто-либо может рекомендовать некоторые учебные руководства по Матрице преобразования для макетов? [закрытый]

9
задан gargantuan 23 April 2010 в 09:52
поделиться

2 ответа

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

Начните с матриц и линейной алгебры. Есть много книг, но имейте в виду, что, судя по утверждению, которое я сделал выше, вам не нужно читать всю книгу. Вам не понадобятся собственные значения, исключение Гаусса, векторные пространства или любые другие вещи, которые будут сложными и сложными.

Вам просто нужно знать, как расширить ваши знания об умножении и сложении чисел в матрице.

Получение записей в этой матрице преобразования - совсем другое дело. Вам понадобится хорошая книга по математике и компьютерной графике. Вы не найдете этого в учебнике линейной алгебры.

6
ответ дан 4 December 2019 в 07:04
поделиться

Как указал Даффимо, преобразование матрицы - это не что иное, как (предварительное) умножение вектора (например, трехмерной точки) на матрицу. Однако это чистая математика, и некоторым людям трудно ее представить.

Лучший способ понять матрицы преобразования (по крайней мере, для меня) - это получить пример кода , запустить его и поиграть с числами ]. Попробуйте посмотреть, можете ли вы поместить объект подальше или повернуть на 45 градусов. Попробуйте расположить преобразования в другом порядке и посмотрите, каковы будут результаты.

Все работает? Хороший.

Как только вы это почувствуете и если у вас хватит смелости заняться математикой, вы можете предпринять следующие шаги:

Во-первых, понять, как работает матричное умножение. Некоторые ссылки:

Как только вы научитесь умножать матрицу вручную, вы поймете, почему преобразования записываются именно так. По мере их использования к вам в конечном итоге придет понимание матриц.

Во-вторых, я всегда рекомендую потратить день, пытаясь реализовать собственный класс Matrix и определить несколько общих операций, например mul (Vector v) , transpose () или даже createTranslationMatrix (float x, float y, float z) . Проведите несколько тестов и посмотрите, совпадают ли результаты с тем, что вы делали вручную.

Если вы зашли так далеко, попробуйте реализовать собственное преобразование перспективы! Это самое удивительное, что мы никогда не ценим. Здесь можно найти полезное объяснение:

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

8
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: