Уроки Коммент.

Создание игр » Новости » Вектора, матрицы, трансформации

Вектора, матрицы, трансформации

Вектора и матрицы Хотите быть таким же куртым, как Нео? Тогда вам нужно досконально изучить, что такое матрица, как с ней бороться… Либо дружить… И с векторами тоже )

Этот урок будет скорее теоретическим, чем практическим. Однако, как бы “не интересна” не была для Вас теория – я очень рекомендую ознакомиться с данным материалом, особенно тем, кто плохо понимает что такое вектор или матрица и зачем они нужны, потому как без этих знаний в программировании графики Вам делать просто нечего.

Так же заранее попрошу тех, кто хорошо разбирается в вопросе, не обращать внимание на то, что часть понятий сильно упрощена – моя задача сделать тему как можно более понятной, а не давать научные определения терминов.

Итак, что же такое вектор? Говоря просто, вектор есть ни что иное, как направленный отрезок, т.е. вектор имеет направление и имеет длину. При этом вектор не имеет “начала” и “конца”, т.к. в этом случае он становится отрезком. А вот два вектора как раз могут обозначать отрезок – один из них будет началом отрезка (относительно начала координат), а второй – концом (тоже относительно начала системы координат).

Самый простой способ задания вектора – задать его проекции на оси координат (но есть и другие варианты задания вектора). Например, вектор (1, 2, 3) обозначает что если спроецировать его на оси координат, то его проекция на ость X будет = 1, на Y = 2 и на Z = 3. Проще говоря, вектор задаётся длиной его проекций на каждую ось координат.

Матрицы и вектораСоответственно, отсюда следует, что размерность вектора равна размерности системы координат, в которой находится этот вектор. Например, на плоскости всего две оси координат (X и Y), потому вектора на плоскости двухмерные, в 3д-пространстве три оси координат и вектора в этом пространстве трёхмерные. Но могут быть и четырёхмерные вектора (например, для задания цвета может использоваться система координат Red-Green-Blue-Alpha) и, в особых случаях, более многомерные.

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

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

И как же нам потом понять, где находятся какие-то предметы, если часть из них задана координатами относительно окна, часть – относительно двери, а часть – относительно кота? Для этого есть возможность переводить вектора из одной системы координат в другую. И делается это с помощью матриц.

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

Матрицы бывают четырёх видов:

  • матрица трансляции (перемещения)
  • матрица масштабирования (увеличения/уменьшения)
  • матрица поворота
  • матрица, которая задаёт сразу несколько преобразований (например, поворот и перемещение или перемещение и увеличение)

Матрица Соответственно, например, если у нас есть координаты (вектора положений) объектов относительно окна, умножив их на матрицу трансформации из системы координат окна в систему координат двери, мы получим их координаты относительно двери. Точно так же мы можем преобразовать координаты из системы координат кота в систему координат двери. И после этого мы сможем точно знать где предметы находятся относительно друг друга, т.к. все они будут в одной системе координат.

Осталось только отметить, что размерность матрицы так же равна размерности пространства, для работы с которым эта матрица предназначена. Например, для двухмерных пространства (координаты на плоскости), обычно применяются матрицы 2х2, для трёхмерных – матрицы 3х3, однако в трёхмерной графике обычно используются матрицы 4х4 – с их помощью проще делать, например, перспективные преобразования.

Ещё по этой теме:




Раздел: Новости

2 комментариев на "Вектора, матрицы, трансформации"
  1. Эдуард пишет:

    Мда. Нельзя ли поподробней об матрицах. Желательно с примерами…

  2. Дима пишет:

    Правильно ли я понял, что для двухмерного случая применяются матрицы только 2х2? Нельзя ли по подробнее, для чего и как используется матрица 4х4 для трехмерного пространства?

Оставить комментарий

*

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>