Основы компьютерной графики/§3

Материал из Викиверситета
Базовый уровень статей

Выделить только проверенную информацию

Создать черновик

3D преобразования[править]

Тут все почти так же как и в 2D преобразованиях, тока с добавлением еще одного измерения (еще одной оси координат) будем проводить аналогию:

Смотрим матрицу преобразования имеет такой вид : не стоит пугаться такого обилия буковок, тут все так же как и двухмерных преобразованиях а именно:

1) Линейное преобразование. За него отвечают (a,b,c,d,e,f,g,i,j)

  • Поворот
  • Сдвиг
  • Масштабирование
  • Отражение

2) Афильные (Евклидовы) преобразования. За них отвечают (l,n,m) соответственно раз 3 координаты (x,y,z) то и у нас 3 элемента матрицы отвечают за это.

  • Перемещение

3) Проективные (начертательные) преобразования

посмотрим несколько примеров:

  • масштабирование по осям. по оси X в 2 раза, по оси Y в 3 раза, Z - не изменяется.
  • Для отражения от плоскости OYX : (x y z 1) → (x y -z 1) (т.е. в матрице преобразования поменять знак у элемента j), для такого же отражения по OXZ : (x y z 1) → (x -y z 1) (элемент с). Возьмём более сложный случай "Вывернуть наизнанку" т.е. отразить по всем 3ем осям - это делается :
  • Повороты : вокруг оси X и вокруг оси Y → Для поворота вокруг произвольной прямой нужно выполнить: , где R матрица поворота для той оси, на который вы перенесёте.
  • Сдвиг - все не диагональные элементы b,c,d,f,g,i
  • Перемещение - l,m,n,
  • Проекция - это афильное преобразование в нем участвуют все элементы кроме p,q,r,s т.е. Например, если нам нужно спроецировать на плоскость Z=0 то матрица преобразования будет выглядеть следующим образом