Аффинные преобразования на плоскости и в пространстве. Аффинные преобразования

Глава 1. Дополнение. Преобразование декартовых прямоугольных координат на плоскости и в пространстве. Специальные системы координат на плоскости и в пространстве.

Правила построения систем координат на плоскости и в пространстве рассмотрены в основной части Главы 1. Были отмечены удобства применения прямоугольных систем координат. При практическом использовании средств аналитической геометрии часто возникает необходимость преобразовать принятую систему координат. Обычно это диктуется соображениями удобства: упрощаются геометрические образы, нагляднее становятся аналитические модели и используемые при вычислениях алгебраические выражения.

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

Результаты, полученные в Дополнении Главы 1, будут использоваться в линейной алгебре, большая часть – в математическом анализе и в физике.

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

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

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

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

Так как произвольное перемещение твёрдого тела из одной точки пространства в другую может быть представлено двумя независимыми движениями: поступательное и вращательное, то варианты преобразования системы координат ограничили двумя движениями:

1). Параллельный перенос: следим только за одной точкой – точкой .

2). Вращение осей системы координат относительно точки : как твёрдого тела.

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

Пусть имеем на плоскости системы координат: , и . Система координат получается параллельным переносом системы . Система координат по­лу­ча­ется вращением системы на угол , причём за положительное направление вращение принято вращение оси против часовой стрелки.

Определим для принятых систем координат базисные векторы. Так как система получена параллельным переносом системы , то для обеих этих систем примем базисные векторы: , причём единичные и совпадающие по направлению с осями координат , , соответственно. Для системы в качестве базисных векторов примем единичные векторы , совпадающие по направлению с осями , .

Пусть задана система координат и в ней определена точка = . Будем считать, что перед преобразованием имеем совпадающие системы координат и . Применим к системе координат параллельный перенос, определяемый вектором . Требуется определить преобразование координат точки . Воспользуемся векторным равенством: = + , или:

Проиллюстрируем преобразование параллельного переноса известным в элементарной алгебре примером.

Пример Д 1 : Задано уравнение параболы: = = . Привести уравнение этой параболы к простейшей форме.

Решение :

1). Воспользуемся приёмом выделения полного квадрата : = , которое легко представить в виде: –3 = .

2). Применим преобразование координат – параллельный перенос : = . После этого уравнение параболы принимает вид: . Это преобразование в алгебре определяют так: парабола = получена смещением простейшей параболы вправо на 2, и вверх на 3 единицы.

Ответ: простейшая форма параболы: .

Пусть задана система координат и в ней определена точка = . Будем считать, что перед преобразованием имеем совпадающие системы координат и . Применим к системе координат преобразование вращения так, что относительно исходного своего положения, то есть относительно системы оказывается повёрнутой на угол . Требуется определить преобразование координат точки = . Запишем вектор в системах координат и : = .

В то же время для любого угла имеем: что достаточно просто наблюдаем из рисунка. Тогда: = . Последнее может быть записано в виде: = . Из векторного равенства получаем преобразование координат для точки : .Нарушение авторских прав и

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

В компьютерной графике всœе что относится к плоскому случаю принято обозначать 2D (2-dimentional) двумерное, а всœе что относится к пространственным – 3D.

Аффинные преобразования на плоскости

Affinis – родственный (лат). Потому, что фигуры сохраняются при аффинных преобразованиях.

Предположим, существует некоторая прямолинœейная система координат (OXY). Тогда, каждой точке М можно поставить в соответствие пару координат (x,y). Введя другую систему координат O * X * Y * , можно поставить той же точке М другую пару координат (x * ,y *). Переход от одной системы к другой:

x * =ax+by+c, с условием |a b|¹0

y * =dx+ey+f |d e|

Эти формулы можно рассматривать двояко, либо сохраняется точка, и изменяется система координат, либо сохраняется система координат и изменяется точка. В дальнейшем эти формулы будут рассматриваться именно как преобразование точек в заданной системе координат. Причем всœе рассматриваемые системы будут прямоугольными (формулы позволяют работать и с непрямоугольными).


Нужно отметить, что координаты точки M можно представить в виде вектораиз начала координат с координатами Mx,My.

Тогда преобразование можно записать в векторной форме (это справедливо только для прямоугольной системы координат).

M*=((M-O*)X*,(M-O*)Y*)

Где O*-координаты начала координат второй системы в координатах первой. X*,Y* - орты (направляющие вектора) второй системы координат в координатах первой.

a=(Xx*), b=(Xy*),c=-O*X*

d=(Yx*), e=(Yy*),f=-O*Y*

Это преобразование можно записать и в матричном виде

, или , где вектора считаются в виде матриц вида 1´2.

Элемент Cij матрицы C=AB есть сумма произведений элементов i-ой строки матрицы A на элементы j-ого столбца матрицы B.

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

Аффинное преобразование – геометрическое преобразование плоскости или пространства ĸᴏᴛᴏᴩᴏᴇ можно получить комбинируя поворот, перенос, зеркальные отражения и масштабирование в направлениях координатных осœей.

Поворот (R - rotation). Вокруг начала координат на угол a.

x * =x*cosa-y*sina

y * =x*sina+y*cosa

Растяжение, сжатие вдоль координатных осœей (D – dilatation).

Отражение (M – mirror). Относительно оси абсцисс.

Перенос (T – translation).

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

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

Иногда удобно представлять всœе преобразования в одной матричной форме, для этого используют однородные координаты.

Однородные координаты

Для точки M с координатами x,y на плоскости, однородными координатами является тройка чисел x1,x2,x3, одновременно неравная нулю и связанная соотношениями x1/x3=x, x2/x3=y. Точке с координатами x,y на плоскости сопоставляется точка xh,y,h,h в однородном пространстве, обычно h=1 (x,y,1).

Общее преобразование точек в однородных координатах можно записать в виде.

А матрицы базовых преобразований будут выглядеть следующим образом:

Комбинация преобразований.

Предположим нужно повернуть точку на угол вокруг некоторой точки A.

Начала переносим точку A в начало координат (-Ax,-Ay). Далее поворот. Далее перенос обратно в точку А. (Ax,Ay). Можно получить единое преобразование

Аффинные преобразования в пространстве

В 3D пространстве точка (вектор) представляется тремя координатами (x,y,z), или четырьмя однородными координатами (x,y,z,1).

Следует ввести понятия левая и правая тройка векторов. Три вектора a,b,c образуют правую тройку, в случае если после совмещения начал векторов кратчайший поворот от a к b кажется наблюдателю, смотрящему с конца вектора c идущим против часовой стрелки. Правило правой руки – вектор a совмещается с локтем, вектор b входит в ладонь, вектор c совпадает с большим пальцем. Система координат принято называть правой, в случае если ее направляющие вектора образуют правую тройку.

Векторное произведение c=a´b, с – вектор перпендикулярный обоим векторам, образует с ними правую тройку.

Cx=Ay*Bz-Az*By, Cy=Az*Bx-Ax*Bz, Cz=Ax*By- Ay*Bx

Преобразования остаются те же: вращение (только теперь вокруг трех осœей), растяжение, отражение (относительно трех плоскостей), перенос.

Вращение против часовой, в случае если смотреть из начала координат для левой системы координат (для правой – наоборот).

, ,

,

, ,

К примеру, нужно построить матрицу вращения относительно прямой с направляющим ортом L, проходящей через точку A.

1. Перенос A в начало координат

2. Совмещение прямой с осью X.

Сначала поворот вокруг оси X

на угол a , cosa=Lz/d, sina=Lx/d, где d=

В случае если d=0, значит прямая уже совпадает с осью X.

Затем поворот вокруг оси Y на угол b .

Повернутый вектор равен (Lx,Ly,Lz,1)=(Lx,0,d,1).

cosb=Lx, sinb=d

3. Поворот вокруг оси X на нужный угол

4. Возвращение к оси L ,

5. Перенос на точку A

Общая матрицы получится

Преобразование в систему координат заданную ортами

В случае если система задана тройкой взаимно перпендикулярных ортов X*,Y*,Z*.

, обратное преобразование – транспонированная матрица [R] T

Проектирование

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

Существует два наиболее употребляемых вида проектирования параллельное и центральное (перспективное).

При проектировании объекта на плоскость нужно провести через каждую точку объекта прямую из заданного проектирующего пучка и найти пересечение этой прямой с плоскостью.

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

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, чтобы получить аксонометрическую параллельную проекцию объекта на экране нужно совместить направление пучка с одной из осœей (обычно это Z). Оси X и Y совпадут с осями X,Y на экране, а ось Z – будет направлена вглубь экрана.

Чтобы получить перспективную проекцию точки крайне важно поместить точку схода пучка в начало координат, направление на экран (перпендикуляр из точки схода к плоскости проектирования) совместить с осью Z, тогда Xp=X*d/Z, Yp=Y*d/Z, где d - расстояние от начала координат до плоскости проектирования.

Это преобразование можно записать в виде матрицы. ,

Единственное, в таком преобразовании теряется глубина (z), но можно ее вычислить из последней координаты вектора.

Кроме этих преобразований проектирования крайне важно сделать еще несколько, чтобы изображение правильно смотрелось на экране. В первую очередь, его нужно растянуть до размеров окна, во-вторых, его нужно зеркально отобразить вокруг оси Х (т.к. ось Y обычно направлена вниз), в-третьих, его нужно перенести в центр окна.

Общая матрица преобразования выглядит следующим образом.

Cx,Cy – координаты центра экрана.

ratio – отношение размера по Y к размеру по X, для разных разрешений экрана разный. Разрешение – количество точек на единицу поверхности, в данном случае единица – весь экран монитора. Экран монитора имеет соотношение горизонтального размера к вертикальному 4/3, в связи с этим для разрешений с количеством точек по горизонтали и вертикали кратным этому числу ratio=1 (к примеру 640/480). Иначе ratio=(4*sizey)/(3*sizex) (320x200 =0.83).

S – масштабный коэффициент, для параллельной проекции выбирается вручную, для перспективной проекции S равняется единице, но рассчитывается d (расстояние до плоскости проектирования) исходя из поля зрения FOV (field of view). FOV – максимальный угол, который образуют прямые в пучке, угол зрения.

FOV обычно варьируется от 50° до 100°, FOV человеческого глаза - 90°.

Мировая, модельная и экранная системы координат

Мировая – основная система координат, в которой заданы всœе объекты сцены.

Модельная – система координат, в которой задана внутренняя структура объектов.

Экранная – система координат наблюдателя, еще ее называют системой координат камеры.

Модель обычно располагают в модельной системе таким образом, что центр системы совпадает либо с геометрическим, либо с центром масс модели, ось X совпадает с направлением вперед, ось Y – вправо, ось Z – вверх.

Модель задается в мировой системе координат координатами центра модели M (вектор) и ориентацией (либо тремя ортами, либо тремя углами крен (X), тангаж (Y), курс (Z), матрица при этом формируется как последовательность поворотов ). Для преобразования из модельных координат нужно сначала повернуть в соответствии с матрицей ориентации , а затем перенести на .

Курс Крен Тангаж

Положение и ориентацию камеры можно задать точно аналогично тому, как и положение модели. Но часто, достаточно только направления зрения камеры. Обычно (в реальной жизни) камера не имеет крена, ᴛ.ᴇ. ось X (вправо) всœегда горизонтальна, а плоскость YZ следовательно всœегда вертикальна.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, в случае если предположить, что ось Z камеры (направление зрения) не вертикальна, то можно найти ось X=Norm(Z´Up), где Up(0,0,1) вертикальный вектор (X получится перпендикулярен вертикальному вектору Up, а значит горизонтален). Наконец ось Y=X´Z (вверх). Следите за тем, чтобы система оставалась левой.

Чтобы преобразовать точки из мировой системы в экранные крайне важно сначала применить перенос , а затем повернуть на транспонированную матрицу ориентации камеры T .

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, для того, чтобы перевести точку из модельных координат в экранные крайне важно произвести следующее преобразование T . После таких преобразований ось Z будет направлена вдоль направления зрения и можно делать проектирование.

Лекция 6-7-8

Преобразования на плоскости и в пространстве - понятие и виды. Классификация и особенности категории "Преобразования на плоскости и в пространстве" 2017, 2018.

Возьмем на плоскости (или в пространстве) какой-нибудь вектор (рис. 142). При аффинном преобразовании точки переходят соответственно в точки , имеющие относительно нового репера те же координаты, которые точки имели относительно старого. Так как координаты вектора получаются вычитанием координат его начальной точки из координат его конца, то координаты вектора относительно нового репера те же, что и координаты вектора относительно старого репера. Итак:

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

Отсюда сразу следует, что при аффиниом преобразовании равным векторам соответствуют равные, так что:

2° Аффинное преобразование плоскости (пространства) порождает ьзаимно однозначное отображение на себя (преобразование) многообразия V всех свободных векторов плоскости (соответственно пространства).

Это преобразование обладает следующим свойством линейности: если при данном преобразовании векторам и, v соответствуют векторы u, v, то вектору будет соответствовать вектор , а вектору - вектор Ли (доказывается сразу переходом к координатам). Из свойства линейности вытекает, далее:

Если при данном аффинном преобразовании векторам соответствуют векторы , то всякой линейной комбинации

векторов соответствует линейная комбинация

векторов (с теми же коэффициентами ).

Так как при аффинном преобразовании нулевому вектору очевидно соответствует нулевой, то из доказанного следует:

4° При аффинном преобразовании линейная зависимость векторов сохраняется , значит, всякие два коллинеарных вектора переходят в коллинеарные, всякие три компланарных вектора переходят в компланарные).

5° Обратное преобразование к аффинному преобразованию есть аффинное преобразование.

В самом деле, если данное аффннное преобразование А плоскости задается переходом от репера к реперу , то аффинное преобразование, задаваемое переходом от репера к реперу , есть, как легко видеть, преобразование, обратное к преобразованию А.

То же и для пространства.

Мы видели, что при аффинном преобразовании линейная зависимость векторов сохраняется. Сохраняется и линейная независимость векторов:

6° При аффинном преобразовании А всякая линейно независимая система векторов их, . переходил в линейно независимую - в противном случае при аффинном преобразовании , обратном к А, линейно зависимая система и, . перешла бы в линейно независимую, что, как мы знаем, невозможно.

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

7° При аффинном отображении (заданном переходом от репера I к реперу ) всякий репер II переходит в репер [ и всякая точка М (всякий вектор и) переходит в точку М (в вектор ) с теми же координатами относительно репера , какие точка М и вектор и имели относительно репера II.

Доказательство в случае плоскости и в случае пространства одно и то же. Ограничимся случаем плоскости. Пусть II есть репер (рис. 143), а - репер сначала утверждение, касающееся векторов. Если вектор и имеет относительно репера координаты , то . Но тогда образ вектора и есть, по свойству 3°, вектор

имеющий координаты относительно репера . Пусть точка М имеет координаты относительно репера .

Тогда , гак что, по предыдущему, относительно репера сектор ОМ, а значит, и точка М имеют координаты . Утверждение доказано.

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

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

В самом деле, пусть аффинное преобразование задается переходом от репера I к реперу II. Аффинное преобразование мы можем, по только что доказанному, задать переходом от репера II к какому-то реперу III. Тогда аффинное преобразование, задаваемое переходом от репера I к реперу III, есть, очевидно, произведение преобразования на преобразование .

Замечание 1. Только что доказанные свойства 1° - 7° аффинных преобразований, очевидно, имеют место и для аффинных отображений одной плоскости на другую (одного экземпляра трехмерного пространства на другой).

Тождественное преобразование плоскости, соответственно пространства, есть, очевидно, аффинное преобразование. Вспомним, что преобразование, обратное к аффинному, есть аффинное. Наконец, как мы только что доказали, произведение двух аффинных преобразований есть аффинное преобразование. Отсюда - на основании условия, данного в § 6, п. 6, Прибавления, - сразу вытекает следующая основная

Теорема 1. В группе всех преобразований плоскости (пространства) аффинные преобразования образуют подгруппу.

Среди аффинных преобразований движения выделяются тем, что они могут быть заданы переходом от одной прямоугольной системы координат к другой, тоже прямоугольной и имеющей тот же масштаб. Обратное преобразование к движению есть движение, и произведение двух движений есть движение. Так как тождественное преобразование есть частный случай движения, то (в полной аналогии с теоремой 1) имеет место и

Теорема 1. В группе всех аффинных преобразований движения образуют подгруппу.

Продолжаем перечисление простейших свойств аффинных преобразований и отображений.

Три точки тогда и только тогда коллинеарны (т. е. лежат на одной прямой), когда векторы коллинеарны. А так как коллинеарность векторов при аффинном преобразовании сохраняется, то сохраняется и коллинеарность точек. Отсюда вытекает:

При аффинном отображении (плоскости или пространства) прямая переходит в прямую.

Мы сейчас дадим второе доказательство этого факта.

Пусть дано аффинное отображение. Оно состоит в том, что каждая точка М с координатами (в координатной системе ) переходит в точку М, имеющую те же координаты во второй системе . Отсюда следует:

9° При данном аффинном отображении (определенном переходом от репера , к реперу ) множество всех точек, координаты которых (в координатной системе ) удовлетворяют некоторому Уравнению, переходит в множество точек, координаты которых в системе удовлетворяют тому же уравнению.

В частности, прямая с уравнением

(в системе ) перейдет в прямую, имеющую то же уравнение, но только в системе координат .

Точно так же при аффинном преобразовании пространства (определенном переходом от репера к реперу ) плоскость, имеющая в системе уравнение

переходит в плоскость, имеющую то же уравнение (2), но только в системе координат .

Прямая, заданная в пространстве своим «общим уравнением»

или той или иной его специальной разновидностью, например каноническим уравнением

при данном аффинном преобразовании перейдет в прямую, имеющую те же уравнения, но только в системе координат . Итак, доказана

Теорема 2. При аффинном преобразовании плоскости, соответственно пространства, прямые переходят в прямые, плоскости переходят в плоскости.

При этом сохраняется параллельность.

В самом деле, если две прямые (или две плоскости, или прямая и плоскость) параллельны, то их уравнения относительно репера удовлетворяют известным условиям параллельности; но образы этих прямых (плоскостей) имеют те же уравнения относительно репера , и, значит, удовлетворяют тем же условиям параллельности.

Замечание 2. Сохранение параллельности при аффинном преобразовании можно вывести и пользуясь тем, что аффинное преобразование взаимно однозначно.

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

Значит, два пересекающихся множества при всяком взаимно однозначном отображении переходят в пересекающиеся.

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

Пусть в пространстве даны две параллельные прямые; они лежат в одной плоскости и не пересекаются. При аффинном преобразовании пространства эти две прямые перейдут в две прямые, также лежащие в одной плоскости и не пересекающиеся, т. е. в две параллельные прямые.

Теорема 3. При аффинном преобразовании плоскости (пространства), переводящем прямую d в прямую , отрезок прямой d переходит в отрезок прямой а точка М прямой d, делящая отрезок в данном отношении К, переходит в точку

М прямой d, делящую отрезок в том же отношении (рис. 144).

Доказательство. Так как при положительном А. мы получаем точки, лежащие внутри отрезка (соответственно а при отрицательном - вне этого отрезка, то из второго утверждения теоремы 3 следует первое. Доказываем второе утверждение теоремы 3, ограничиваясь случаем плоскости. Пусть (в системе координат ) имеем

Так как точка М делит отрезок в отношении , то

в пространстве к этим равенствам присоединится еще равенство . При данном аффинном преобразовании точки перейдут в точки с теми же координатами, что и у точек , но только в координатной системе . Эти координаты связаны по-прежнему соотношениями (3), из которых следует, что делит отрезок ММ в отношении . Этим теорема 3 доказана.

Пусть при аффинном преобразовании А пространства плоскость отображается на плоскость . Возьмем в плоскости какой-нибудь репер , т. е. пару неколлииеарных векторов , приложенных к какой-нибудь точке о (рис. 145). При преобразовании А точка о плоскости перейдет в точку о плоскости , неколлинеарные векторы перейдут в неколлинеарные векторы , т. е. репер от плоскости перейдет в репер плоскости .

Всякий лежащий в плоскости вектор при этом перейдет в лежащий в плоскости вектор с теми же координатами относительно репера , какие вектор и имел относительно репера . Отсюда следует, что и всякая точка М плоскости перейдет в точку М плоскости , имеющую относительно репера , те же самые координаты, какие точка М имела в плоскости относительно репера . Другими место Теорема 4. Пусть при аффинном преобразовании пространства плоскость я переходит в плоскость . Тогда преобразование А отображает произвольный репер плоскости на некоторый репер оаплоскости и ставит в соответствие каждой точке М плоскости точку М плоскости , имеющую относительно репера , те самые координаты, которые точка М имела относительно репера . Другими словами: преобразование А порождает аффинное отображение плоскости на плоскость .

Как можно догадаться - с пространством всё тоже самое, что и с плоскостью. Все правила, которые касались АП в однородных координатах на плоскости, сохраняются и в пространстве, все проблемы, что были на плоскости, остаются и в пространстве. Можно предположить, что все эти правила действительны и для любого n-мерного пространства. Что надо хорошо помнить: есть разные понятия: радиус-вектор по сути – это точка в КГ, а свободный вектор – это просто направление, и третье понятие – нормаль. Преобразования для них определяют по-разному. В пространстве всё также, причём в пространстве это более актуально, т.к. в трёхмерной графике много задач, которые не часто или вообще не встречаются на плоскости.

Итак, в пространстве имеем три координаты x,y,z и дополнительно вводится координата W для получения свойства однородности. Также для АП принимаем, что W=1 и тогда (x, y, z) = ( , ).

Преобразования в общем случае можно представить в виде скалярного произведения вектора – строки на матрицу преобразования – слайд 29:

В матрице 12 коэффициентов. Блок (3х3) (как в 2D блок (2х2)) отвечает за преобразования - поворот, масштабирование… Нижняя строка отвечает за параллельный перенос, правый столбик должен отвечать за перспективные преобразования, но пока эти вопросы рассматривать не будем. Матрицы преобразования имеют аналогичный вид и смысл - (слайд 30)

и повороты - (слайд 31)

Если вспомнить пример поворота точки, то в пространстве выполнить это так же просто нельзя. Поворот, рассмотренный на плоскости, по существу был выполнен вокруг оси Z, и если надо выполнить поворот какой-то точки в пространстве, то его нельзя задать однозначно простым действием. Он будет описываться посредством трёх матриц – вокруг оси Z, оси Х, оси У, т.е. его надо будет разбить на ряд отдельных действий – на три составных.

Ещё одно замечание – определитель матрицы равен 1. Это означает, что в процессе поворота объект не поменяет своих размеров и не претерпеет какой-либо деформации, т.е. ведёт себя как твёрдое тело. Этому телу можно задавать необходимую ориентацию в пространстве. Тоже можно сказать и о параллельном переносе.

Имеется более универсальный способ осуществления поворота относительно произвольной оси, проходящей через начало координат. Матрица такого преобразования построена на КВАТЕРНИОНАХ и приведена ниже:

С кватернионами следует познакомиться самостоятельно!

Замечание о кватернионах.

При выводе последнего соотношения использовалось понятие о кватернионах. Это система гиперкомплексных чисел (предложена в 1843 г. Гамильтоном, в то время - гл. астрономом Англии).

Кватернион – это пара (а, ū ). а - скаляр, вещественное число. ū - вектор трёхмерного пространства. Кватернионы образуют систему (ряд) гиперкомплексных чисел, подобную другим числовым рядам. Если коротко – то это 4-х компонентная математическая абстракция со своими свойствами и правилами выполнения операций сложения и умножения. Кватернион в общем виде можно представить как сумму a+bi+cj+dk, где a,b,c,d – вещественные числа, а i,j,k – несократимые мнимые единицы, причём для них определено, что

i 2 =j 2 =k 2 =ijk= -1;

Примеры числовых рядов:

Натуральные: 1,2,3,4,5….

Целые: 0,1,-1,2,-2,…

Рациональные: 1;-1;1/2; 0,12,..

Вещественные: рациональные + ирац.: π, е, ,….

Комплексные: -1; ½; π; 3i+z; -еiπ/3;… (включают в себя все предшедствующие)

Кватернионы: 1; -1; 1/2; I; j; k; πj-1/2k; …

9. Пример трёхмерного преобразования – построение матрицы камеры - (слайд 34)

Достаточно часто требуется изменение наблюдения на сцену. Т.е. имеется некоторая сцена и требуется изменить наблюдение на эту сцену с помощью матрицы трёхмерного преобразования.

Считаем, что виртуальный наблюдатель (камера) находится в некоторой точке “C” в ортогональной системе координат U,V,N

и есть другая система координат – X,Y,Z (мировая). Мировые координаты описывают истинное положение объектов в пространстве. Экранная система координат предназначена для синтеза (создания) изображения на к.-л. плоскость. Эта система может быть двумерной и трёхмерной. Различают так же другие системы координат как системы устройств изображения, осуществляющие вывод изображения в заданной форме.

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

Будем считать, что обе системы координат правосторонние, и та, что в камере и мировая. Это означает, что ось Z смотрит на нас. Все векторы направлений нормированы и, что естественно, ортогональны. Это требуется для сокращения набора вычислений. Камеру С должно рассматривать как некоторую одноразовую, однократно задаваемую в программе абстракцию. Её можно заранее настроить, а затем применить ко всем объектам.

Что значит настроить? Настроить – это значит ортонормировать все векторы и согласовать их с векторами – направлениями в другой СК. А дальше применять так долго, как это потребует обстановка.

Что будем искать? Будем искать такое преобразование, которое переводит объект из мировой системы координат в систему координат наблюдателя.

Как будем делать?

Сначала перенесём камеру в начало координат Мировой СК на (- C z), (- C y), (- C x); затем повернём, причем таким образом, что бы оси -U совпала с осью X, V совпала с осью Y и ось N c осью Z; т.е. будем искать матрицу преобразования в виде: перенос-поворот.

Поскольку камера находится в позиции точка “C” с координатами (x,y,z), то необходимо выполнить обратный её перенос: матрица переноса показана на слайде 33.

где Т – матрица переноса

Аффинное преобразование это такое преобразование, которое сохраняет параллельность линий, но не обязательно углы или длины.
В компьютерной графике все, что относится к двумерному случаю, принято обозначать символом 2D (2-dimension). Допустим, на плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х, у) ее координат (рис. 1).


Указанные выше формулы можно рассматривать двояко: либо сохраняется точка и изменяется координатная система в этом случае произвольная точка М остается той же, изменяются лишь ее координаты (х, у) (х*, у*) , либо изменяется точка и сохраняется координатная система в этом случае формулы задают отображение, переводящее произвольную точку М(х, у) в точку М*(х*, у*), координаты которой определены в той же координатной системе. В дальнейшем будем интерпретировать формулы, как правило, что в заданной системе прямолинейных координат преобразуются точки плоскости.
В аффинных преобразованиях плоскости особую роль играют несколько важных частных случаев, имеющих хорошо прослеживаемые геометрические характеристики. При исследовании геометрического смысла числовых коэффициентов в формулах для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.
Наиболее часто применяются следующие приемы компьютерной графики: перенос, масштабирование, поворот, отражение. Алгебраические выражения и рисунки, поясняющие данные преобразования сведем в табл.1.

Аффинные преобразования на плоскости

Под переносом понимается смещение примитивов вывода на один и тот же вектор.
Масштабирование это увеличение или уменьшение всего изображения либо его части. При масштабировании координаты точек изображения умножаются на некоторое число.
Под поворотом понимается вращение примитивов вывода вокруг заданной оси. (В плоскости чертежа вращение происходит вокруг точки.)
Под отражением понимают получение зеркального отображения изображения относительно одной из осей (например X).
Выбор этих четырех частных случаев определяется двумя обстоятельствами:
1. Каждое из приведенных выше преобразований имеет простой и наглядный геометрический смысл (геометрическим смыслом наделены и постоянные числа, входящие в приведенные формулы).
2. Как доказывается в курсе аналитической геометрии, любое преобразование вида (*) всегда можно представить как последовательное исполнение (суперпозицию) простейших преобразований вида А, Б, В и Г (или части этих преобразований).
Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (*) можно описать при помощи отображений, задаваемых формулами А, Б, В и Г.
Для эффективного использования этих известных формул в задачах компьютерной графики более удобной является их матричная запись.
Для объединения этих преобразований вводят однородные координаты. Однородными координатами точки называется любая тройка одновременно не равных нулю чисел x1 , x2 , x3 , связанных с заданными числами x и y следующими соотношениями:



Тогда точка M(х, у) записывается как M(hX, hY, h), где h 0 является масштабным множителем. Двумерные декартовы координаты могут быть найдены как

В проективной геометрии эти координаты вводятся для устранения неопределенностей, возникающих при задании бесконечноудаленных (несобственных) элементов. Однородные координаты можно интерпретировать как вложение промасштабированной с коэффициентом h плоскости в плоскость Z= h в трехмерном пространстве.
Точки в однородных координатах записываются трехэлементными вектор-строками. Матрицы преобразования должны иметь размер 3х3.
При помощи троек однородных координат и матриц третьего порядка можно описать любое аффинное преобразование плоскости.
В самом деле, считая h = 1, сравним две записи: помеченную символом (*) и нижеследующую, матричную:

Теперь можно использовать композиции преобразований, применяя одно результирующее вместо ряда преобразований, следующих друг за другом. Можно, например, сложную задачу разбить на ряд простых. Поворот точки А около произвольной точки В можно разбить на три задачи:
перенос, при котором В= 0 (где 0-начало координат);
поворот;
обратный перенос, при котором точка В возвращается на место и т. д.
Композиция наиболее общего вида из операций Т, D, R, M имеет матрицу:

Верхняя часть размером 2х2 - объединенная матрица поворота и масштабирования, a tx и ty описывают суммарный перенос.
К изложенным фундаментальным преобразованиям сводятся следующие:
прокручивание перемещение окна на поверхности визуализации (если перемещение ограничено только направлениями вверх и вниз, то оно называется вертикальным прокручиванием);

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



Понравилась статья? Поделитесь с друзьями!