Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все, кроме 14 и 18.docx
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
138 Кб
Скачать
☆

4.Аффинные преобразования в двухмерном пространстве. Матричная запись.

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

Матричная запись.

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

На примере преобразования точки.

Точка на плоскости представляется двумя координатами |x,y|. Матрица преобразования точки выглядит так

Преобразуем точку путём умножения матрицы координат точки |x,y| на матрицу преобразования.

Преобразование фигуры.

Производится аналогично. Составляется матрица, состоящая из координат точек фигуры. Где в первом столбце – координаты Х, а во втором координаты – У.

При этом площадь новой фигуры равна площади старой фигуры умноженной на детерминант матрицы преобразования s1=s2*|ad-bc|.

5.Аффинные преобразования в трехмерном пространстве. Масштабирование, перенос, однородные координаты.

Преобразование переноса и однородная координата

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

Определить такое преобразование с использованием матрицы размером 2*2 невозможно. Преодолеть данную трудность можно с помощью перехода в однородные координаты, точка на плоскости в однородных координатах определяется тройкой [X Y W] где W – масштабирующий коэффициент, X Y – координаты точек, получаемые из декартовых по средствам следующих соотношений.

X = x*W

Y = y*W

По однородным координатам с помощью деления на масштабирующий коэффициент всегда можно найти декартовую координату. Очевидно, что этот коэффициент не должен быть равен нулю. Однородные координаты не обладают однозначностью, т.е. точка [1 3 1], [2 6 2], [3 9 3] - будет одна и та же точка.

Матрица масштабирования (растяжения - сжатия):

a > 0 – коэффициент растяжения (сжатия) вдоль оси абсцисс; b > 0 – коэффициент растяжения (сжатия) вдоль оси ординат; y > 0 – коэффициент растяжения (сжатия) вдоль оси аппликат

6.Аффинные преобразования в трехмерном пространстве. Повороты. Композиция преобразований.

Преобразование поворотов

Если – поворот 2700, если – поворот , если – поворот 1800

Например, чтобы сделать поворот нужно ответить на вопрос:

  1. В какой системе координат определяются координатные векторные – в лево сторонней или право сторонней

  2. Как переделяются положительные и отрицательные повороты

  3. Вращается объект или система координат

  4. Координаты записываются в виде строк или столбцов матрицы

  5. Вокруг какой линии или оси осуществляется поворот

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

[x y z 1] – однородная координата

Композиции преобразований

Последовательные преобразования могут быть скомбинированы или объединены в одно 4*4 преобразование, дающее тот же самый результат, т.к. перемножение матриц является не коммутативной операцией. Правильный порядок определяется положением конкретной матрицы преобразования относительно матрицы координатного вектора. Матрица ближайшая к матрице координатного вектора задает первое преобразование.

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

Транспонировать матрицу:

Перенос X на 3 единицы вниз:

Поворот вдоль X на 15 градусов:

Матрица, обратная этой:

Отражение чтобы отразить относительно оси X.