20. Операции преобразования в трехмерном пространстве. Матрицы преобразований. - chrislvt/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(в том числе и отрицательные)