Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Геом. преобразов.Часть2.doc
Скачиваний:
13
Добавлен:
16.09.2019
Размер:
1.62 Mб
Скачать

Тема - Базовые понятия и геометрические преобразования на плоскости (итоги).

  1. Введение

В основе КГ лежат разделы курсов математики: аналитической геометрии, проективной геометрии, а также сведения из линейной алгебры.

Базовые понятия: свободный вектор, радиус-вектор, система координат. Пространства – векторное, аффинное, евклидово, проекционное; базис, разложение вектора, линейная комбинация векторов, линейная зависимость и независимость векторов, действия с векторами, скалярное и векторное произведение векторов и т. д. И наконец – матрицы и действия над ними. Эти понятия необходимо знать для целей последующего применения в программировании. Слайд 1.

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

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

Слайд 2.

Основные отличия этих преобразований друг от друга:

  • Аффинные преобразования сохраняют параллельность прямых;

  • Билинейные преобразования не сохраняют ничего, кроме прямизны линий;

  • Перспективные преобразования (иначе их называют проективными) – это общий случай аффинных преобразований с нормирующим делителем. Перспективные преобразования расширяют аффинные и позволяют получать изображения более реалистичные трёхмерных объектов. Перспективные преобразования сохраняют прямолинейность линий и не сохраняют параллельность в направлении взгляда. Основа перспективных преобразований – проективная геометрия. Просмотреть её и изучить можно самостоятельно.

  1. Аффинные преобразования: перенос, масштабирование, сдвиг и поворот

Начнём с аффинных преобразований (далее - АП), а именно с преобразования системы координат. Формулы преобразования известны со средней школы. Слайд 3.

Для параллельного переноса имеем

x' = x + dx

y' = x + dy

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

Масштабирование (Слайд 4) – есть умножение системы координат (системы координат точек плоскости) на постоянное число s.

Масштабированием достигают изменение размеров объекта, получение гомотетии при Sx = Sy. А если число S принимает отрицательное значение, то объект зеркально отображается (отражается) относительно начала координат или одной из осей координат.

Сдвиг (Слайд 5) – это добавление к одной из координат другой координаты:

или

Поворот относительно начала координат (Слайд 6).

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

  1. Матричное 2х2 представление геометрических преобразований

В общем случае преобразования на плоскости (Слайд 7) представляют в виде линейных зависимостей новых координат от старых. Такие преобразования удобно переписывать в матричной форме: векторная строка из двух компонентов в виде старых (стартовых) координат x, y умножается на матрицу , элементы которой – коэффициенты при линейных координатах, связанных с преобразованиями масштабирования, поворота и сдвига. К ним добавлена вектор-строка коэффициентов, связанных с параллельным переносом.

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

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

  1. Однородные координаты и геометрические преобразования: слайд 8

Для преобразования матрицы аффинных преобразований к более удобному виду принято рассматривать так называемые однородные координаты. Эта тема (теория) рассматривается в проективной геометрии.

Суть преобразования состоит во введении в оборот дополнительной координаты. Формально - обычной паре координат x и y на плоскости ставится в соответствие тройка координат в некотором трёхмерном пространстве:

. .

Пусть W=1, тогда тройка координат получит вид

(x,y) = (x, y, 1)

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

В качестве третьей координаты добавлена компонента W (обозначение может быть разным h, S, H и т. п.). Эту компоненту можно считать нормирующим множителем. Применение однородных координат даёт ряд плюсов.

  1. Используя координату W как нормирующий множитель можно получать удобную форму для хранения в памяти машины значений координат в более рациональном виде.

  2. Все преобразования, что были записаны раньше, могут быть пересчитаны также в более удобном виде как единое произведение матрицы–строки координат на матрицу преобразования.

Слагаемое, связанное с параллельным переносом может быть занесено в 3-ю строку, в предположении, что W=1.

На самом деле параллельный перенос не влияет на свободный вектор и его применяют только к радиус-вектору, который задаёт отдельную точку на плоскости (или в пространстве).

Если W=0, то получим точку в бесконечности, т. е. получим направление радиус-вектора, указывающего, где может находиться точка в бесконечности (например, направление полёта снаряда). Этим пользуются (приравнивая W=0) и когда надо показать отличие радиус-вектора от точки или получить направление радиус-вектора к точке в бесконечности.

Запись: W=1 = > X, Y, W – это точка, а запись: W=0 = > X, Y, 0 – это свободный вектор или его направление.

Если в уравнении преобразования подставить W=0, то никакого параллельного переноса мы не получим, но возможно масштабирование, поворот и сдвиг объекта по линии направления свободного вектора.

Перепишем все, ранее составленные матрицы преобразования с добавлением однородных координат. Вот что из этого получается: (Слайд 9)

~ translation (перенос)

T(dx, dy) =

сдвиг

~ shear by x (сдвиг по x)

shx (shx) =

~ shear by y (сдвиг по y)

Shy (shy) =

~ scaling (масштабирование)

S (sx, sy) =

~ rotation (вращение)

R (α) =

Все матрицы получились 3×3, все матрицы квадратные, все преобразования имеют обратное представление (обратные матрицы). Определитель всех матриц detA ≠ 0 и преобразования можно осуществлять как в одну сторону, так и в другую.