Выполнение произвольных преобразований на плоскости. Композиция преобразований | MetodPro.ru

Реклама на сайте

Выполнение произвольных преобразований на плоскости. Композиция преобразований


Рассмотренные нами ранее преобразования поворота выполнялись только относительно начала координат. Так же и отражение проводилось только относительно специальных осей.

Как же выполнить поворот вокруг произвольной точки, отражение относительно произвольной оси или масштабирование относительно произвольной точки?

Ключевая идея состоит в приведении сложного преобразования к более простому частному случаю. Общая схема выполнения такого преобразования следующая:

С помощью преобразований переноса, поворота и масштабирования преобразовать исходную сцену так, чтобы требуемое произвольное преобразование свелось к частному случаю, решение которого известно;

Выполнить требуемое преобразование;

Применить к сцене преобразования, обратные сделанным в первом пункте, что бы вернуть ее в исходное состояние.

Рассмотрим данный подход на примере. Повернем отрезок, заданный своими конечными точками P1 и P2 , вокруг точки Р1 на угол 90 градусов.  Как выполнить поворот объекта вокруг произвольной точки, мы не знаем. Однако нам известно как поворачивать объекты вокруг начала координат.

На первом этапе преобразуем сцену так, что бы точка Р1 совпала с началом координат (в нашем случае сцена состоит только из одного объекта, но мы используем этот термин, чтобы не терять общности схемы).  Для этого используем преобразование переноса, определяемое вектором, соединяющим точу Р1 с началом координат.

Р’ = P*T =  Т 

где Р - матрица объединяющая координатные вектора конечных точек отрезка, а Т – матрица переноса.

На втором этапе выполним поворот отрезка на требуемый угол.

Р’’= P’R

Где R – матрица поворота на угол 90 градусов относительно начала координат.

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

Р’’’ = Р’’T-1

Одной из главных причин использования представления преобразования в матричной форме является  возможность получать сложные матрицы путем композиции более простых матриц. Или другими словами – мы можем получать матрицы сложных геометрических преобразований, перемножая матрицы элементарных  преобразований, рассмотренных нами выше.

Сведем рассмотренные преобразования в общую формулу

Р’’’ = ((P*T)*R)*T-1 = P*T*R* T-1= P*M

где матрица М является композицией (объединением, соединением, конкатенацией) матриц. Остановимся на свойствах композиции, в частности на коммутативности. В общем случае произведение матриц не коммутативно. То же можно сказать о композиции геометрических преобразований.  В рассмотренном примере поменяем местами  матрицы преобразования переноса и поворота

K  =  P *R*T * T-1= P*R

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

Полученные результаты преобразований не совпадают К ¹ Р’’’,  следовательно, одни и те же матрицы в зависимости от порядка перемножения дают разные композиции.

Кроме того, необходимо обратить внимание на порядок умножения координатного вектора на матрицы преобразования. Мы умножали вектор-строку на  матрицу. В некоторых источниках встречается обратный порядок – проводится умножение матрицы преобразования на координатный вектор. Чтобы перейти к этому способу необходимо координатный вектор представить как вектор-столбец, а матрицу преобразования транспонировать.

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

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



Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем