Конгер Д.
Физика для разработчиков компьютерных игр
стр. 80

Матрицы

Матрицы - это просто массивы чисел, которые можно складывать и перемножать по определенным правилам. Вы, вероятно, знаете, что такое массивы в программировании, даже если вы не встречались с ними где-то еще. В физике и математике матрицы обозначаются заглавными буквами, например, М. Элементы матрицы обычно обозначаются строчными буквами с двумя нижними индексами, поэтому матрица может выглядеть так:

В математике и физике нумерация столбцов и строк в матрицах обычно начинается с единицы. Однако в компьютерах для хранения двумерных матриц обычно используются двумерные массивы, а индексы в массивах в языке C++ начинаются с О. Поэтому во многих книгах на компьютерные темы нумерация столбцов и строк в матрицах тоже начинается с 0. Именно так нумеруются столбцы и строки в матрицах и в этой книге.

Матрица М называется матрицей 4x4, поскольку в ней четыре столбца и четыре строки. В программировании графики на компьютере чаще всего используются квадратные матрицы, в которых количество строк равно количеству столбцов. Это утверждение верно и для тех областей физики, с которыми мы будем иметь дело. Почти все матрицы, которые нам встретятся, будут квадратными. В библиотеке моделирования реализованы классы matrlx2x2 и matrix3x3 для работы с матрицами 2x2 и 3x3.

С многих точек зрения матрицы проще векторов. Они не привязаны к каким-то координатам, как векторы. Они больше похожи на компоненты векторов в определенных системах координат. Собственно говоря, компоненты n-мерных векторов ведут себя очень похоже на матрицы размера 1хп.

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

Замечание_

Не так уж сложно создать класс, который сможет работать с матрицами любого размера. Если вы хотите создать такой класс, прочитайте, например, книгу «Numerical Recipes for C++» (издательство William Press and Company). Однако мы сейчас изучаем специфическую область программирования - программированию игр. Нам понадобятся только матрицы определенных размеров. Универсальность стоит принести в жертву скорости работы. Реализуя только те матрицы, которые нам понадобятся, можно упростить код и немного ускорить его выполнение.






Новости
Авторы Just Cause показали новый трейлер Generation Zero
Avalanche Studios представила новый трейлер Generation Zero и объявила, что закрытое бета-тестирование пройдёт этой осенью (записаться можно на официальном сайте).
Возможно, SEGA отказалась от защиты Denuvo в переиздании Shenmue I II
Ранее издательство SEGA, разместив в Steam информацию о переиздании Shenmue I & II, указало, что проект будет оснащаться защитой Denuvo.