Часть I / Лекция 01. Преобразования в двухмерном пространствеПреобразования в двухмерном пространстве используются в разнообразных случаях: чтобы отдельные части объекта можно было описывать в различных координатных системах; чтобы типовые и повторяющиеся части можно было располагать в произвольных положениях на чертеже и в пространстве, в том числе с использованием циклов; чтобы без повторной кодировки можно было получать симметричные части объекта; для направленной деформации фигур, тел и их частей; для изменения масштаба чертежа, построения проекций пространственных образов... С аналитической точки зрения преобразования это пересчет значений координат. Преобразование точкиТочка на плоскости представляется двумя координатами: |x y|. Матрица
преобразования точки выглядит так: Ниже показано преобразование точки через квадратную матрицу; здесь
xn = xa + yc и yn = xb + yd новые координаты
точки после преобразования: Преобразование фигурыЕсли представить фигуру как совокупность точек, то можно провести и ее
преобразование. В следующем примере задано четыре точки: A(0, 0), B(1, 0),
C(1, 1), D(0, 1), каждая из которых после преобразования переходит
соответственно в A*(0, 0), B*(a, b),
C*(a + c, b + d), D*(c, d): Геометрически это соответствует деформации фигуры: При этом площадь новой фигуры равна площади старой фигуры, умноженной на детерминант матрицы преобразования: S2 = S1 * |ad - bc|. |
Однородные координаты. Операции в нихЛюбая система координат, в которой представление точки в двухмерном (трехмерном) пространстве задается при помощи трех (четырех) координат (Р1, Р2, Р3(, Р4)), называется системой однородных координат. Вообще, для n-мерного пространства число однородных координат должно быть на единицу больше: n + 1. Применение однородных координат в общем случае позволяет устранять аномалии, возникающие при работе в декартовых координатах, и представлять сложные преобразования в виде произведения нескольких матриц. Геометрическая интерпретация на случай двухмерного пространства: введение третьей координаты, равной единице, можно трактовать как переход в трехмерное пространство, в котором разрешено работать только в плоскости z = 1. Следует представлять себе, что экран компьютера (картинная плоскость, плоскость изображения) находится в плоскости z = 1: В случае выхода рисунка за сечение z = 1 рисунок возвращается принудительно в данное сечение для того, чтобы были возможны последующие операции: Такая операция называется нормализацией однородных координат: |
Общий вид преобразованияОперация смещенияМатрица преобразования содержит в себе константы m и n, под действием которых точка смещается на m единиц вдоль оси x и на n единиц вдоль оси y: Операция масштабированияЗа счет коэффициентов a и d матрицы преобразования происходит увеличение (или уменьшение) значения координат точки (x, y) в a и d раз по осям x и y соответственно: Общее полное масштабированиеВ данном случае при s < 1 будет происходить увеличение значения координат точки (x, y) в s раз; при s > 1 мы получим обратный эффект уменьшение значения координат (x, y) в s раз. Поворот на угол qЗдесь q угол, на который требуется повернуть точку (x, y). Обратите внимание: поворот происходит относительно точки (0, 0) декартовой системы координат против часовой стрелки! А теперь вот вам маленькое задание. Попробуйте повернуть треугольник на угол q = 90o, координаты точек можете взять любые. Наш вариант представлен здесь. Отображение или зеркалирование
Поворот фигуры вокруг произвольной точки (m, n) на произвольный угол aЧтобы провести любое сложное преобразование, необходимо разложить его на базовые операции. Поворот фигуры вокруг произвольной точки (m, n) на произвольный угол a состоит из трех базовых операций: 1) перенос фигуры на вектор A(-m, -n) для совмещения точки (m, n) с началом координат; 2) поворот фигуры на угол a; 3) перенос фигуры на вектор A'(m, n) для возвращения ее в исходное положение. Так как фигуру можно представить набором точек, то операции 1) - 3) можно выполнять последовательно для каждой точки. Покажем это на примере. Пусть мы хотим повернуть треугольник с координатами A(x, y), B(x1, y1), C(x2, y2) вокруг точки D(m, n) на угол a. Пусть P-s матрица переноса точки на вектор A(-m, -n), Va матрица поворота на угол a, Ps матрица переноса точки на вектор A'(m, n). Итак, мы имеем все данные, необходимые для проведения сложного
преобразования первой точки A(x, y): Точно такие же преобразования необходимо провести для оставшихся двух точек треугольника, подставляя соответствующие их координаты взамен x и y (последовательность операций см. на рис. 1.7). Таким образом, сложная операция разбивается на простейшие и задается произведением соответствующих матриц преобразования, причем порядок, в котором перемножаются матрицы, существенно определяет результат. Центральное проецирование (перспектива)px + qy + 1 = H плоскость. Примечания
Нахождение точки пересечения двух линий (пример)Пусть имеются две линии: x + y = 1, 2x - 3y = 0, необходимо найти точку
их пересечения. Решение
может быть найдено с использованием матриц. Перенесем все члены уравнений в
левую часть: x + y - 1 = 0, 2x - 3y - 0 = 0; запишем коэффициенты первого
уравнения в первый столбец матрицы, второго уравнения во второй: Условие, при котором пересекаются две прямые, выглядит следующим образом: Для нахождения ответа необходимо обе части предыдущего уравнения домножить
справа на обратную матрицу M-1 (при перемножении M и
M-1 получается единичная матрица E): |x y 1| = |3/5 2/5 1| Ответ: точка пересечения прямых: x = 3/5, y = 2/5. |
||||||
|
|