Композиции двумерных преобразований
Но обычно при работе с графической системой объект подвергается сразу нескольким преобразованиям. Для получения желаемого результата используют композицию преобразований, объединяя матрицы . К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований последовательно.
Рассмотрим, например, поворот объекта относительно некоторой точки .
До этого был рассмотрен поворот относительно начала координат. Для решения этой задачи разобьем ее на три части (три элементарных преобразования):
· Перенос точки в начало координат), .
· Поворот, .
Рис. 2.5
· Перенос точки из начала координат в начальную позицию, .
Результирующее преобразование имеет вид:
,
или:
Этот пример хорошо иллюстрирует, как применение однородных координат упрощает задачу.
Аналогично, если надо промасштабировать объект относительно точки , а не начала координат, то надо:
· Перенести точку в начало координат, .
· Масштабировать, .
· Перенести точку назад, .
Результат имеет вид:
Если надо промаштабировать, повернуть и расположить в нужном месте домик, (центром поворота и масштабирования является точка ), то необходимо выполнить:
· Перенос точки в начало координат, .
· Масштабирование, .
· Поворот, .
· Перенос точки из начала координат назад, .
В структуре данных, в которой содержится это преобразование, могут находиться масштабный коэффициент , угол поворота и координаты . Но может быть и записана матрица результирующего преобразования:
.
Дата добавления: 2016-07-18; просмотров: 1844;