@Quark_Hell
C++ программист

Как позиция объекта соответствует четырёхмерной матрице?

Читая статьи про компьютерную графику я заметил, что для представления трансформаций объекта используются четырёхмерные матрица. Однако я никак не могу найти внятного объяснения почему так. Ведь для представления позиции некоторого объекта в трёхмерном пространстве нам достаточно всего 3 значения(позиция по x, y, и z). Тогда как четырёхмерная матрица, имея 16 значений, может умещаться в эти 3 значения?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Матрицы используются для записи преобразований. Надо домножать на них вектор из координат точки - получится новый вектор, который и будет результатом преобразования. Любое линейное преобразование можно записать в виде матрицы.

Четвертая координата позволяет записывать одной матрицей повороты/растяжения и сдвиги. Если у вас матрица 3x3 (не "трехмерная" - у нее все так же есть только ширина и высота), то точка (0, 0, 0) всегда останется (0, 0, 0). Ведь на что 0 не домножай - останется 0. Поэтому матрицами 3x3 можно записать только повороты и сжатия, но не сдвиги.

Поэтому вводят фиктивное четвертое измерение w. При этом удобно считать, что координаты точки (x, y, z, w) - Это (x/w, y/w, z/w). Это еще иногда называют однородными координатами. Еще один плюс этого объекта в том, что им можно описать точки на бесконечности (когда w = 0).

Вот тут уже можно составить линейное преобразование (т.е. взять матрицу), которое оставляет w нетронутым, но использует его для сдвига:
x' = a11*x + a12*y + a13*z + a14*w
...
w' = w

Вот в a14 - как раз и находится сдвиг по оси X.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы