
- •Геометрические преобразования, реализуемые матрицей 2х2
- •Представление прямых линий
- •Однородные координаты (ок) и однородное координатное преобразование (окп)
- •Базовые преобразования в ок для плоскости
- •Композиция преобразований
- •Базовые преобразования в трехмерной области
- •Трехмерные вращения
- •Примеры решения типовых задач
Композиция преобразований
Композиция это цепочка последовательных преобразований.
Особенность выполнения композиции преобразований связана с операциями преобразования относительно произвольной точки.
Сложное преобразование определим, как цепочку основных преобразований, примененных последовательно.
Пусть к объекту применяется преобразование переноса на вектор Т(tx ty), а затем преобразование поворота относительно начала координат на угол .
Выполним сначала перенос, обозначив результат через Р’=РМ(Т). Затем выполним поворот, обозначив результат через Р*, тогда
Р* = Р’ М(R()) или P* = P M(T) M(R()).
Воспользуемся свойством ассоциативности матричного умножения и выполним сначала умножение матриц М(Т) и M(R()). Результат представляет собой матрицу полного преобразования:
.
По аналогии можно определить матрицу любого сложного преобразования, состоящего из цепочки основных преобразований.
Пример 1. Определить матрицу преобразования, соответствующую повороту на угол относительно точки С(хс, ус). Это преобразование можно осуществить в три этапа:
преобразование переноса на (-С) для того, чтобы совместить центр поворота с началом координат (так как нам известна матрица преобразования поворота только относительно начала координат);
преобразование поворота на угол относительно начала координат;
преобразование переноса на С для возвращения центра поворота в прежнее положение.
Тогда полное преобразование будет иметь вид:
Пример 2. Определить матрицу, соответствующую преобразованию гомотетии с центром С(хс, ус) и масштабом Е(ех, еу).
Задача решается аналогично предыдущей, так как нам уже известна матрица центральной гомотетии (изменение масштаба относительно начала координат). Требуемое преобразование выполняется следующей цепочкой преобразований:
преобразование переноса на (-С) для совмещения центра гомотетии с началом координат;
преобразование масштаба на вектор Е;
преобразование переноса на (С) для возврата центра гомотетии в прежнее положение.
Тогда Р* = Р М(Т(-С)) М(Е) М(Т(С)).
Базовые преобразования в трехмерной области
Лучшим способом изучения формы объекта является помещение его в трехмерное пространство и выполнение операций вращения, масштабирования и построения его проекций. Распространим результаты для плоских изображений на трёхмерные изображения. Тогда точка Р в трехмерном пространстве в ОК представится вектором || x y z 1 || или при h1 для получения обычных трехмерных координат необходимо ОК нормализовать, т.е. разделить на h.
Преобразования в пространстве выполняются, как и для плоскости, а их усложнение связано с преобразованием произвольного поворота, которое выполняется комбинацией поворотов относительно трех осей.
Как и для плоскости определим матрицы основных преобразований.
Трехмерный перенос на вектор Т=|| tx ty tz || в матричной форме запишется в виде Р=РМ(Т), где
.
Трехмерное масштабирование на вектор Е (еx, еy, еz) определяется как Р= РМ(Е), где
Полное масштабирование относительно начала координат
Трехмерный сдвиг выполняют недиагональные элементы верхней левой подматрицы 3х3 в матрице преобразования 4х4, т.е.