20. Операции преобразования в трехмерном пространстве. Матрицы преобразований. - p1xelse/CG GitHub Wiki

Аффинное преобразование (мы такими занимаемся) — отображение плоскости или пространства в себя, при котором параллельные прямые переходят в параллельные прямые, пересекающиеся — в пересекающиеся, скрещивающиеся — в скрещивающиеся, а также существует обратное преобразование. Отсюда вытекают свойства таких преобразований:

  • n-мерный объект отображается в n-мерный, т.е. точка в точку, линия в линию, поверхность в поверхность;
  • сохраняется параллельность линий и плоскостей;
  • сохраняются пропорции параллельных объектов — длин отрезков на параллельных прямых и площадей на параллельных плоскостях.

(повороты тут против часовой стрелки)

Преобразование Матрица(М) Формула
Перенос
Поворот вокруг Y
Поворот вокруг Z
Поворот вокруг X
Масштабирование(сжатие/растяжение, отражение)
Проецирование на плоскость z = 0

ПРО ПЕРЕСПЕКТИВНОЕ ПРОЕЦИРОВАНИЕ. Перспективное преобразование — это преобразование одного трехмерного пространства в другое. Вообще весь правый столбец отвечает за проецирование на разные плоскости, т.е если бы мы хотели получить проекцию на ось Х, то -1/с было бы в первой строке последнего столбца, где c - фокусное расстояние на оси х. Когда мы проецируем на одну плоскость, то это называется одноточечным проецированием, но мы можем совмещать эти дела и получать двухточечные проекции и тд. ПЕРСПЕКТИВНОЕ ПРОЕЦИРОВАНИЕ ЭТО ПЕРСПЕКТИВНОЕ ПРЕОБРАЗОВАНИЕ, А НЕ АФИННОЕ.

ПРО МАСШТАБИРОВАНИЕ.

Например, Комбинация коэффициентов kx = -1; ky = 1; kz = 1 будет задавать отражение от плоскости OYZ (х = 0).

При kx = ky = kz = -1 получим симметрию относительно начала координат.

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

Коммутативность афинных преобразований(про это спросит 100%, поэтому подготовьтесь)

Коммутативные преобразования(все остальные некоммутитвны)

M1 M2
Перенос Перенос
Масштабирование Масштабирование
Поворот Поворот
Масштабирование (однородное) Поворот

Учитывайте еще такую вещь, что центр масштабирования может быть не в центре изображения! К примеру, если увеличить фигуру с центром масштабирования за пределами этой фигуры, то результатом будет не только увеличение объекта, но и смена его местоположения! Про это был вопрос в защите!!! Можно ещё дописать, что если центр не в начале координат, то сначала перенос центра в него, затем масштабирование/поворот, затем обратный перенос.

Вопросы из защиты по этой теме(2 лаба)

Что получится в результате выполнения масштабирования, поворота, обратного масштабирования, обратного поворота? Изображения не изменится,если масштабирование однородное, и изменится, если оно неоднородное. Данные преобразования коммутативны в случае однородного масштабирования

Что произойдет с изображением при его масштабировании с коэф. К> 1 относительно центра за пределами изображения? Изображение увеличится в К раз и изменит свое местоположение (удалится от центра масштабирования)

Какие значения принимают коэф. масштабирования? Коэффициент масштабирования - любое действительное число, кроме 0(в том числе и отрицательные)