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

Матрицы

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

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

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

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

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

Замечание_

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






Новости
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.
Ubisoft выпустит эксклюзивную фигурку Father’s Calling
Компания Ubisoft сообщила, что коллекционная фигурка Father’s Calling, представляющая собой лидера организации «Врата Эдема» из Far Cry 5, поступит в продажу 22 марта 2018 года по цене 3999 рублей.