Афінне перетворення та його матричне уявлення. Афінні перетворення Коли формула застосовна

Тема цього випуску завдання афінного перетворення на матричній формі. Ця тема, власне, є узагальненням всього, що було сказано раніше.

Визначення.Перетворення площини називається афінним, якщо

  • воно взаємно однозначне;
  • Таким чином, будь-яка пряма є пряма.

Перетворення називається взаємно однозначним, якщо

  • різні точки переходять у різні;
  • у кожну точку переходить якась точка.

Однорідні координати

Якщо розглянути паралельне перенесення, то виявляється, що для його завдання матриці 2x2 вже недостатньо. Але його можна поставити за допомогою матриці розміру 3x3. Постає питання, звідки взяти третю координату у двовимірної точки?

Визначення.Однорідні координати - координати, які мають тим властивістю, що об'єкт, що визначається ними, не змінюється при множенні всіх координат на те саме число.

Однорідними координатами вектора(х, у) є трійка чисел(x", y", h) , де х = х" / h, у = y"/h, а h - деяке речове число (випадок, коли h = 0 є особливим).

Прим.Дані координати неможливо однозначно задати точку площини. Наприклад,(1, 1, 1) та (2, 2, 2) задають ту саму точку(1, 1) . Пропонується взяти набір(x, y, 1) , який описуватиме всі точки площини.

Матриця перетворення однорідних координат має розмір 3х3. Розглянемо деякі перетворення на однорідних координатах.

Стиснення/розтягування

Це перетворення множить відповідні координати точок на коефіцієнти масштабування по осях:(x, y) -> (a x * x, a y * y) . Матриця перетворення запишеться так:

[ a x 0 0 ]

Де a x - Розтяг по осі x ,

a y - Розтяг по осі y.

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

Поворот


Матриця повороту 2x2 була детально розібрана раніше. Тепер вона доповнюється рядком та стовпцем:

[-sin(phi)cos(phi) 0]

Прим.При вугіллі phi = п ця матриця задає центральну симетрію щодо початку координат, яка є окремим випадком повороту. Можна помітити, що таку симетрію можна встановити за допомогою перетворення стиснення/розтягування (допускаючи негативні коефіцієнти масштабування).

Паралельне перенесення


Вихідний вектор (x, y) перетворюється на (x + t x, y + t y ) . Матриця перетворення запишеться так:

[ 1 0 0]

[t x t y 1]

Відображення


Як говорилося у примітці до перетворення стиснення/розтягування, відображення виходять таким чином:

[-10 0]


відображення щодо осі x


відображення щодо осі y

Загальний вигляд афінного перетворення

Матриця 3x3, останній стовпець якої дорівнює (0 0 1) T , задає афінне перетворення площини:

[ * * 0]

[ * * 0]

[ * * 1]

За однією з властивостей, афінне перетворення можна записати у вигляді:

f (x) = x * R + t,

де R – оборотна матриця 2 x2, а t - Довільний вектор. У однорідних координатах це запишеться так:

[R 1,1 R 1,2 0]

[R 2,1 R 2,2 0]

[t x t y 1]

Якщо помножити вектор-рядок на цю матрицю отримуємо результат перетворення:

[ xy1 ] * [ R 1,1 R 1,2 0 ]

[R 2,1 R 2,2 0]

[t x t y 1]

[ x’y’1 ]+[ t x t y 1 ]

У цьому [ x ' y ' ]= R *[ x y ]

Прим.Цікавий читач вже поставив собі запитання: у чому сенс визначника матриці R? При афінному перетворенні площі всіх фігур змінюються | R |. (Можна суворо довести це з погляду математики, але тут цей факт наводиться без доказів.)

Т.о. афінне перетворення представляється у вигляді композиції деякого перетворення, що задається матрицею R , та паралельного перенесення. Розберемо докладніше природу цієї матриці та можливості, які вона нам дає.

Матриця R визначає новий базис площини. Тобто. вектор(1, 0) перетворюється на (R 1,1, R 1,2 ), вектор (0, 1) перетворюється на (R 2,1, R 2,2 ). Новий базис це рядки матриці R.

приклад.


При відображенні щодо осі y , базисний вектор по осі ординат зберігається, а по осі абсцис переходить у(-1, 0). Т.о. матриця R буде виглядати так:


Тепер стає ясно, що крім перерахованих вище перетворень, за допомогою афінного перетворення можна отримати скіс:


Вище наведено базові відомості про такий потужний інструмент, як афінне перетворення. Залишається багато питань: який підклас афінних перетворень зберігає кути між прямими? Як можна уявити афінне перетворення у вигляді композиції кількох підкласів? Як задавати складніші перетворення, наприклад, осьова симетрія щодо довільної прямої?

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

Зупинимося на практичній реалізації афінного перетворення у вигляді демонстраційної програми. До можливостей програми, що демонструє поворот площини мишею, додаються функції паралельного перенесення при натиснутій клавіші CTRL.

Т.к. ця стаття є завершальною в даному розділі, код демонстраційної програми має бути відповідним. Спробуймо розібратися, які блоки потрібні в графічному додатку, паралельно розглядаючи, як вони реалізовані в цій програмі:

  • блок, у якому відбувається створення вікна та обробляються повідомлення операційної системи, реалізований у файл emain. cpp
  • графічний движок, що виконує малювання зображення, клас Engine
  • прошарок, необхідний для перетворення логічних координат у віконні та назад, клас Viewport
  • об'єкт, який відповідає за реакцію на дії користувача, клас Action

У наведеному прикладі реалізовані ці функціональні блоки з докладними коментарями.

УДК 004.932

Кудріна М.А., Мурзін А.В.

ФДБОУ ВПО "Самарський державний аерокосмічний університет ім. ак. С.П. Корольова (національний дослідницький університет)", Самара, Росія

АФІННІ ПЕРЕТВОРЕННЯ ОБ'ЄКТІВ У КОМП'ЮТЕРНІЙ ГРАФІЦІ

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

Це завдання вирішується використанням афінних перетворень (affine transformations).

Афінні перетворення можуть бути дуже корисними в таких ситуаціях:

1. Для складання плоского зображення або тривимірної сцени шляхом компонування з однотипних елементів, за допомогою копіювання, перетворення і переміщення в різні місця зображення. Наприклад, для створення симетричних об'єктів, таких як сніжинка. Можна розробити один мотив і потім скласти зображення всього об'єкта шляхом відбитків, поворотів та переміщень цього мотиву.

2. Для перегляду тривимірних об'єктів із різних точок зору. У цьому випадку можна зафіксувати положення камери і повертати сцену або навпаки, залишити сцену нерухомою і пересувати навколо неї камеру. Подібні маніпуляції можуть бути здійснені за допомогою тривимірних афінних перетворень.

3. Для проектування тривимірних об'єктів на площину та відображення сцени у вікні. Так, наприклад, для аксонометричного проектування використовується послідовність двох поворотів площини проектування, а для відображення у вікні - сукупність масштабування та переміщення.

Афінні перетворення на площині у загальному вигляді описуються такими формулами:

J X = Ax + By + C, . Програма дозволяє автоматизувати процес складання тестових завдань.

ЛІТЕРАТУРА

1. Порєв В. Н. Комп'ютерна графіка. – СПб.: БХВ-Петербург, 2002. – 432 с. : іл.

2. Хілл Ф. Open GL. Програмування комп'ютерної графіки. Для професіоналів. - СПб.: Пітер,

2002. - 1088с.: іл. ISBN 5-318-00219-6

3. Кудріна М.А., Кудрін К.А., Витяг А.А., Іонов Д.О. Розробка системи дистанційного навчання для курсу "Комп'ютерна графіка" за допомогою Moodle: Праці міжнародного симпозіуму Надійність та якість. 2010. Т. I. С. 165.

4. Кудріна М.А., Кудрін К.А., Дегтярьова О.А. Атестаційний педагогічний вимірювальний матеріал за курсом "Комп'ютерна графіка"// Надійність та якість 2008. Праці міжд. симпозіуму. Пенза, 2008, С. 162-163.

5. Кудріна М.А. Використання атестаційно-педагогічних вимірювальних матеріалів за курсом

"Комп'ютерна графіка" у навчальному процесі"// Освіта - інвестиції в успіх: Матеріали наук.-

Властивості афінного перетворення

1. Образом паралельних прямих є паралельні прямі.

Доказ протилежного. Припустимо, що чином паралельних прямих l і m є перетинаються в точці А "прямі l" і m" (рис.8). В силу взаємної однозначності перетворення точка має прообраз, який позначимо А. Але так як А"єl", то Аєl . Аналогічно Аєm. Це суперечить паралельності прямих l і m.

2. При афінному перетворенні зберігається відношення двох відрізків, розташованих на одній прямій: (рис.9)

Насправді, за визначенням афінного перетворення:

3. При афінному перетворенні зберігається відношення паралельних відрізків.

Дано: АВ||СD. За якістю 2 буде також А "В" | | С "D" (рис.10)

Потрібно довести:

Для підтвердження проведемо АС, потім DL||AC. Побудуємо також А"С" та D"L"||A"C". За якістю 2 пряма DL перетворюється на D"L" і отже, . Тепер за визначенням: . Але AL=CD, A"L"=C"L", тому звідси відразу виходить потрібне.

4. При афінному перетворенні кут і відношення довільних відрізків, взагалі кажучи, не зберігаються, тому що будь-який трикутник можна перевести в будь-який інший. Тому висота і бісектриса трикутника перетворюються зазвичай на інші лінії, медіана ж перетворюється на медіану, оскільки середина відрізка перетворюється на середину.

5. При афінному перетворенні паралелограм перетворюється на паралелограм, трапеція в трапецію.

Еквівалентні фігури

Аналогічно поняттю рівності та подоби фігур вводиться поняття їхньої афінної еквівалентності.

Фігура F1 називається афінно еквівалентною фігурі F2, якщо F1 можна афінним перетворенням перевести у F2.

Коректність цього визначення випливає з того, що афінні перетворення утворюють групу і, отже, введена тут афінна еквівалентність має транзитивність, рефлексивність, симетричність.

Зазначимо деякі класи афінно-еквівалентних фігур.

1). Усі трикутники афінно еквівалентні (випливає з основної теореми).

2). Усі паралелограми афінно еквівалентні.

3). Для афінної еквівалентності трапецій необхідно достатньо, щоб їх підстави були пропорційні.

Перспективно-афінна відповідність двох площин

Припустимо, що дві площини w і w" перетинаються по лінії хх (чорт. 1). Задамо якусь пряму l, що перетинає обидві площини. Зазначимо на площині w довільну точку А і спроектуємо її на площину w", проводячи через А пряму, паралельну l. Нехай проектуюча пряма перетне площину w" у точці А". Точку А можна розглядати як проекцію точки А на площину w. Така проекція називається паралельною та визначається завданням прямої l.

З побудови проекції А" точки А видно, що у свою чергу точку А можна розглядати як проекцію точки А" на площину w. Таким чином, паралельна проекція є апаратом, що має абсолютно однакове значення по відношенню до обох площин w і w". Вона відносить кожній точці (А) першої площини цілком певну точку (А") другий, і назад. Ми отримуємо попарну відповідність точок площин w і w". Ця відповідність є взаємно однозначною, тобто кожній точці однієї площини відповідає єдина точка другої, і назад.

Відповідність площин w і w", встановлений за допомогою паралельної проекції, називається перспективно-афінним або спорідненим.

Якщо розглядають процес переходу від однієї з даних площин (наприклад, w) до іншої площини (w"), при якому кожна точка (А) однієї площини (w) переходить у відповідну точку (А") іншої площини (w"), як односторонній, його називають перетворенням площини (w) в площину (w")- У цьому випадку точку А називають прообразом, а точку А" - її образом.

Проектуючи паралельно площину w на площину w", проводимо перспективно-афінне перетворення площини w на площину w".

Можна також сукупність всіх точок площини w називати полем точок w і говорити про перетворення поля точок w на поле точок w".

Поставимо собі завдання вивчити властивості перспективно-афінної відповідності площин.

Займемося, перш за все, питанням про подвійні, або нерухомі, точки нашої відповідності, тобто про такі точки, які збігаються зі своїми відповідними точками. Так як кожна подвійна точка повинна належати як одній, так і іншій площині, то вони повинні лежати на лінії перетину хх площин w і w". З іншого боку, очевидно, що кожна точка прямої хх є подвійна, оскільки вона сама собі відповідає. Пряма називається віссю відповідності. Відповідно до попереднього вісь відповідності може бути визначена як геометричне місце подвійних точок.

Таким чином, прямій лінії на одній площині відповідає пряма лінія на іншій. Цю властивість перспективно-афінної відповідності називають коллінеарністю. В силу самого визначення паралельної проекції фігури як геометричного місця проекцій усіх точок цієї фігури кожній точці, що лежить на прямій, завжди відповідає точка, що лежить на відповідній прямій. Тому взаємоприналежність точки і прямої однієї площині тягне у себе взаємоприналежність відповідних елементів другого.

2. Наступна властивість перспективно-афінної відповідності стосується так званого простого відношення трьох точок прямої.

Розглянемо три точки А, В, С, що лежать на одній прямій (рис 1). Просте відношення точок А, В визначається формулою:

геометричний перетворення аффінний відповідність

У цій формулі точки А і В вважаються основними (або базисними), а точка С-ділячою. Просте відношення (ABC) є відношенням довжин тих відрізків, які ділить точка утворює з основними. Якщо точка С лежить поза відрізком АВ, то обидва відрізки АС і ВС однаково спрямовані, і тому в цьому випадку просте відношення (ABC) позитивне. У випадку, коли точка, що ділить, знаходиться між А і В, просте відношення (ABC) негативно.

На кресленні 1 видно, що точкам А, В, З площини w відповідають точки А", В", З "площини w". Оскільки проектують прямі АА", ВВ", СС" паралельні, то матимемо:

або (ABC) = (А "В" С").

Ми приходимо до висновку, що у перспективно-афінній відповідності просте відношення трьох точок прямої однієї площини завжди дорівнює простому відношенню трьох відповідних точок іншої.

3. Перш ніж перейти до розгляду подальших властивостей перспективно-афінної відповідності, зупинимося на питанні про можливе розташування відповідних площин w і w в просторі.

До цих пір ми припускали ці площини такими, що не співпадають і перетинаються по лінії хх, щоб за допомогою паралельного проектування встановити розглянуту вище перспективно-афінну відповідність. Після того, як така відповідність встановлена, можна було б привести обидві площини в збіг, обертаючи якусь одну з них навколо осі хх. При цьому всі геометричні образи, що знаходяться в тій і іншій площині, не змінюються. Отже, як у будь-який момент обертання площини, так і при її поєднанні з другою площиною встановлено раніше перспективно-афінну відповідність не порушується.

Прямі, що з'єднують відповідні точки, як АА", ВВ", СС",…, залишаються паралельними при будь-якому положенні площини, що обертається, а також і після її суміщення з нерухомою площиною. Це видно з того, що кожні дві зі згаданих прямих (наприклад, АА" і ВВ") завжди лежать в одній площині, що визначається парою прямих, що перетинаються (АВ і А"В"), і відсікають на сторонах кута пропорційні відрізки, так як (АВХ) = (А"В"Х). w і w" проектують прямі (АА", ВВ",...) виявляться лежачими в площині, що утворилася з двох площин, що збіглися w і w" (чорт. 2).

Для нас особливо цікавий випадок суміщеного становища площин, тому що в цьому випадку ми можемо користуватися плоским кресленням, що зображує встановлену відповідність без спотворення.

У разі поєднання кожну точку (подвійний) площини можна розглядати як належну площині w або w" і позначати її в залежності від цього великою літерою без штриха або зі штрихом. Таким чином, ми маємо перетворення площини в себе, причому її початковий стан (площина до перетворення) позначається буквою w, а новий стан (площина після перетворення) - буквою w".

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

4. Тепер ми могли б відмовитися від просторового апарату (паралельної проекції), який послужив нам для встановлення перспективно-афінної відповідності двох площин і визначити останнє для подвійної площини, не виходячи в простір. З цією метою доведемо наступне припущення: Перспективно-афінне перетворення площини цілком визначається віссю (хх) і парою відповідних точок (А, А ").

Доведення. Нехай дані вісь хх і пара відповідних точок (АА") перспективно-афінного перетворення (рис. 3). Доведемо, що для будь-якої точки В площині можна побудувати цілком певну і єдину відповідну точку В".

Проведемо пряму АВ. Нехай X-точка її перетину з віссю хх. Так як точка X сама собі відповідає (як лежача на осі), то прямий АХ відповідає пряма А "X. Нарешті, точка В повинна лежати на прямій А "Х і проектує прямий ВВ", паралельної А А. Це дозволяє побудувати шукану точку В". Таким чином, даних виявилося достатньо, і відповідна точка "є єдине рішення".

Зауважимо, що перспективно-афінна відповідність буде дійсно реалізована, оскільки зазначена конструкція не може призвести до суперечності. Це легко перевірити, звівши побудову до апарату паралельної проекції.

Справді, якщо перегнемо креслення 3 по лінії хх так, щоб площини w і w" утворили двогранний кут, то всі прямі, що проектують (прямі, що з'єднують відповідні точки, наприклад ВВ") виявляться паралельними прямий АА" (через пропорційність відрізків). Отже, побудовану нами відповідність можна як результат паралельної проекції.

Примітка. Якби на кресленні 3 ми віднесли точку В до площини w", позначивши її через С", то побудова відповідної точки привела б нас до точки С, яка, як видно з креслення 3, не завжди збігається з В". Можна довести, що необхідну і достатню умову такого збігу, тобто незалежності перспективно-афінної відповідності від того, чи віднесена точка до тієї чи іншої площини, полягає в розподілі відрізка А А" навпіл у точці перетину його з віссю хх.

Отже, у цьому випадку відповідність є косою або прямою симетрією (щодо осі хх).

5. У подальшому дослідженні перспективно-афінної відповідності ми спиратимемося на встановлені вище властивості: 1) коллінеарність і 2) рівність простих відносин трійок відповідних точок.

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

З цих властивостей можна вивести низку інших «інваріантів» перспективно-афінного перетворення, які, в такий спосіб, не є незалежними. Доведемо насамперед інваріантність паралелізму прямих. Припустимо, що на площині w маємо дві прямі а та b, яким на площині w" відповідають прямі а" і b". Припустимо, що прямі а і b паралельні (а || b). Доведемо, що а "|| b". Застосуємо доказ «від протилежного». Припустимо, що прямі а" і b" перетинаються, і позначимо точку перетину буквою М" (чорт. 4). Тоді в силу взаємно однозначної відповідності площин w і w "точці М" площині w" відповідає точка М на площині w. Точка М повинна належати як прямий а, так і прямий b. Отже, М є точка перетину прямих а і b. , приходимо до суперечності. Припущення, що прямі а і b перетинаються, неможливо b".

Таким чином, паралелізм прямих є інваріантною властивістю перспективно-афінного перетворення.

З'єднаємо З D і проведемо через З пряму СF || DВ. На площині w" прямий СF буде відповідати пряма "F" D"В" (в силу інваріантності паралелізму) і, отже, точці F відповідатиме точка F". Знаючи, що просте відношення трьох точок інваріантно, можемо написати:

Таким чином, приходимо до рівності:

Останнє показує, що відношення двох паралельних відрізків є інваріантом перспективно-афінної відповідності.

Якщо відрізки АВ і СD лежать на одній прямій (рис. 6), то їхнє відношення також інваріантне у перспективно-афінній відповідності. Насправді, нехай РQ-довільний відрізок, паралельний прямий АВ. Тоді маємо:

6. Переходимо до розгляду площ відповідних фігур. Доведемо наступну лему: Відстані двох відповідних точок (А, А") до осі відповідності (хх) знаходяться в постійному відношенні, що не залежить від вибору пари відповідних точок. Доказ. рис. 7). Опускаючи з цих точок перпендикуляри на вісь хх, отримаємо відстані до осі.

Можемо написати:

Але як видно з креслення:

Отримана рівність і доводить формульовану лему.

Позначимо постійне відношення відстаней відповідних точок через до. Доведемо наступну теорему.

Відношення площ двох відповідних трикутників постійно і до.

Доказ теореми розпадається на такі випадки:

1. Трикутники мають спільну сторону на осі хх.

Такі трикутники представлені на кресленні 8. Відношення їх площ виразиться так:

2. Трикутники мають загальну вершину на осі хх.

Такі два трикутники на кресленні 9. Відповідні сторони ВС і "С" цих трикутників повинні перетинатися на осі хх (у точці X). Розглянутий випадок зводиться до попереднього. Насправді, на підставі попереднього можна написати:

Тому матимемо:

3. Загальний випадок двох відповідних трикутників.

Нехай на кресленні 10 маємо два відповідні трикутники ABC і А "В" С. Розглянемо один з цих трикутників, наприклад ABC. Площа цього трикутника можна представити таким чином:

Усі трикутники правої частини цієї рівності відносяться до розглянутих вже двох випадків, тому, застосовуючи до них доведену теорему, можемо переписати знайдену рівність так:

Отже,

7. Виведену нами властивість площ двох відповідних трикутників легко поширити на випадок відповідних багатокутників. Справді, кожен багатокутник може бути розбитий на кілька трикутників, причому площа багатокутника виразиться сумою площ його трикутників.

Для відповідного багатокутника отримаємо аналогічне розбиття на трикутники. Якщо площі двох відповідних багатокутників позначимо літерами S і S", а площі двох відповідних складових трикутників - літерами, то можемо написати:

Оскільки, крім того, для площ відповідних трикутників маємо:

Таким чином, отримуємо:

Нарешті, можна узагальнити теорему про відношенні площ у разі двох площ, обмежених відповідними кривими довільного виду.

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

Для площі матимемо аналогічний процес: ,

де через S" позначено площу багатокутника, відповідного багатокутнику S. Так як протягом усього процесу (зміни багатокутників), згідно з доведеною вище теореми, повинні мати:

то перехід до межі дає = k.

Отже,

Отримана властивість може бути представлена ​​як інваріант перспективно-афінної відповідності.

Справді, позначимо через і площі, обмежені двома кривими довільного вигляду, а через "і" - площі, обмежені відповідними кривими, тоді, за доведеним, матимемо:

або, переставляючи середні члени пропорції:

що може бути виражено такими словами: відношення двох будь-яких площ не змінюється (є інваріантом) у перспективно-афінній відповідності.

Загальна афінна відповідність

Перспективно-афінна відповідність двох площин може бути отримана за допомогою паралельної проекції.

Розглянемо тепер відповідність двох площин, утворене багаторазовим застосуванням паралельного проектування. Так, на кресленні 11 площину w проектується паралельно прямий l на площину w". Ця площина проектується паралельно прямий l" на площину w". Нарешті, остання проектується паралельно прямий l" на площину w"". Таким чином, між площинами w і w"" встановлюється відповідність, в якому точкам A, B, C першої площини відповідають точки А "", "", С" другий. Неважко переконатися в тому, що ця відповідність може не бути паралельною проекцією , Але в той же час володіє інваріантними властивостями перспективно-афінної відповідності. очевидно, мати і результуючу відповідність площин w і w""".

Те саме можна сказати і про інші інваріантні властивості, розглянуті у разі перспективно-афінної відповідності, яка виявляється, таким чином, лише тим окремим випадком, коли прямі, що з'єднують відповідні точки, паралельні між собою:

З цієї причини така відповідність називається перспективно- афінним.

Відповідність площин w і w""" називається афінним. Ми прийшли до цього поняття, скориставшись ланцюгом перспективно-афінних перетворень (або паралельних проекцій). Якщо кожне з них позначимо буквами Р, Р",Р" а результуюче перетворення - буквою А , можемо представити афінне перетворення А наступною символічною формулою:

А = Р * Р "* Р",

у якій права частина є «твір» перспективно-афінних перетворень, т. е. результат їх послідовного застосування.

Ті самі міркування можна було б провести, не виходячи з однієї площини, для чого достатньо розглядати ланцюг перспективно-афінних перетворень площини в себе. Кожне з перетворень може бути задано віссю та парою відповідних точок. Так, наприклад, на кресленні 12 перше перетворення Р задано віссю хх і парою (А, А"); друге Р" - віссю та парою (А", А"); третє Р" - віссю х"х" і парою (А" "А""). У результуючому перетворенні А точці А відповідає точка А"".

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

Нижче \(f\) позначає афінне перетворення, що записується в декартовій системі координат \(O, \boldsymbol(e)_(1), \boldsymbol(e)_(2)\) формулами
$$
x^(*)=a_(1)x+b_(1)y+c_(1),\ y^(*)=a_(2)x+b_(2)y+c_(2).\label( ref1)
$$
за умови
$$
\begin(vmatrix)
a_(1)& b_(1)\\
a_(2)& b_(2)
\end(vmatrix) \neq 0.\label(ref2)
$$

Розглянемо на площині пряму лінію з рівнянням \(\boldsymbol(r)=\boldsymbol(r)_(0)+\boldsymbol(a)t\) і знайдемо її образ при перетворенні \(f\). (Під образом прямою розуміється безліч образів її точок.) Радіус-вектор образу \(M^(*)\) довільної точки \(M\) можна обчислити так:
$$
\overrightarrow(OM^(*))=\overrightarrow(Of(O))+f\overrightarrow((O)M^(*))=\boldsymbol(c)+f(\boldsymbol(r)).\nonumber
$$

Тут \(\boldsymbol(c)\) - постійний вектор \(\overrightarrow(Of)(O)\), а \(\boldsymbol(r)\) - радіус-вектор точки \(M\). Згідно (11) §2 ми отримуємо
$$
\overrightarrow(OM^(*))=\boldsymbol(c)+f(\boldsymbol(r)_(0))+f(\boldsymbol(a))t.\label(ref3)
$$
Оскільки \(f\) - афінне перетворення і \(\boldsymbol(a) \neq \boldsymbol(0)\), то \(\boldsymbol(a)\) перейде у вектор \(f(\boldsymbol(a) ) \neq 0\), і рівняння \eqref(ref3) є рівнянням прямої лінії. Отже, образи всіх точок прямої \(\boldsymbol(r)=\boldsymbol(r)_(0)+\boldsymbol(a)t\) лежать на прямій \eqref(ref3).

Більше того, перетворення \(f\) визначає взаємно однозначне відображення однієї прямої на іншу, тому що при зробленому тут виборі початкових точок і напрямних векторів точка \(M^(*)\) має на прямій \eqref(ref3) те ж значення параметра \(t\), як і точка \(M\) на вихідній прямий. Звідси ми отримуємо перше твердження.

Твердження 1.

При афінному перетворенні:

  • пряма лінія перетворюється на пряму лінію;
  • відрізок перетворюється на відрізок;
  • паралельні прямі переходять у паралельні.

Доведення.

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

Твердження 2.

При афінному перетворенні відношення довжин паралельних відрізків не змінюється.

Доведення.

Нехай відрізки (AB) і (CD) паралельні. Це означає, що існує таке число \(\lambda\), що \(\overrightarrow(AB)=\lambda \overrightarrow(CD)\). Образи векторів \(\overrightarrow(AB)\) і \(\overrightarrow(CD)\) пов'язані тією ж залежністю \(\overrightarrow(A^(*)B^(*))=\lambda \overrightarrow(C^( *)D^(*))\). Звідси випливає, що
$$
\frac(|\overrightarrow(AB)|)(|\overrightarrow(CD)|)=\frac(|\overrightarrow(A^(*)B^(*))|)(|\overrightarrow(C^(*) )D^(*))|)=|\lambda|.\nonumber
$$

Слідство.

Якщо точка \(C\) ділить відрізок \(AB\) у певному відношенні \(\lambda\), то її образ \(C^(*)\) ділить образ \(A^(*)B^(*) \) відрізка \(AB\) у тому ж відношенні \(\lambda\).

Зміна площ при афінному перетворенні.

Для початку розглянемо. Виберемо загальну декартову систему координат \(O, \boldsymbol(e)_(1), \boldsymbol(e)_(2)\) і позначимо через \((p_(1), p_(2))\) та \ ((q_(1), q_(2))\) компоненти векторів \(\boldsymbol(p)\) і \(\boldsymbol(q)\), на яких він побудований. Площу паралелограма ми можемо обчислити, користуючись:
$$
S_(\pm)=S_(\pm) (\boldsymbol(p), \boldsymbol(q))=(p_(1)q_(2)-p_(2)q_(1)) S_(\pm) ( \boldsymbol(e)_(1), \boldsymbol(e)_(2)).\nonumber
$$

Нехай афінне перетворення \(f\) записується у вибраній системі координат формулами \eqref(ref1). З раніше доведеного випливає, що вектори \(f(\boldsymbol(p))\) і \(f(\boldsymbol(q))\) мають у базисі \(f(\boldsymbol(e)_(1)), f(\boldsymbol(e)_(2))\) ті ж компоненти \((p_(1), p_(2))\) і \((q_(1), q_(2))\), що і вектори \(\boldsymbol(p)\) і \(\boldsymbol(q)\) у базисі \(\boldsymbol(e)_(1), \boldsymbol(e)_(2)\). Образ паралелограма побудований на векторах \(f(\boldsymbol(p))\) і \(f(\boldsymbol(q))\), і площа його дорівнює
$$
S_(\pm)^(*)=S_(\pm) (f(\boldsymbol(p)), f(\boldsymbol(q)))=(p_(1)q_(2)-p_(2)q_ (1)) S_(\pm) (f(\boldsymbol(e)_(1)), f(\boldsymbol(e)_(2))).\nonumber
$$

Обчислимо останній множник. Як ми знаємо з уже доведеного координати векторів \(f(\boldsymbol(e)_(1)), f(\boldsymbol(e)_(2))\) рівні відповідно \((a_(1), a_( 2))\) та \((b_(1), b_(2))\). Тому \(S_(\pm) (f(\boldsymbol(e)_(1)), f(\boldsymbol(e)_(2)))=(a_(1)b_(2)-a_(2) b_(1)) S_(\pm) (\boldsymbol(e)_(1), \boldsymbol(e)_(2))\) та
$$
S_(\pm)^(*)=(p_(1)q_(2)-p_(2)q_(1))(a_(1)b_(2)-a_(2)b_(1)) S_( \pm) (\boldsymbol(e)_(1), \boldsymbol(e)_(2)).\nonumber
$$
Звідси ми бачимо, що
$$
\frac(S_(\pm)^(*))(S_(\pm))=\begin(vmatrix)
a_(1)& b_(1)\\
a_(2)& b_(2)
\end(vmatrix).\label(ref4)
$$

Таким чином, відношення площі образу орієнтованого паралелограма до площі цього паралелограма однаково для всіх паралелограмів і дорівнює (a_(1)b_(2)-a_(2)b_(1)\).

Звідси випливає, що цей детермінант не залежить від вибору системи координат, в якій записано перетворення, хоча він обчислюється за коефіцієнтами, що залежать від системи координат. Ця величина – інваріант, що виражає геометричну властивість перетворення.

З формули \ eqref (ref4) видно, що відношення площі образу неорієнтованого паралелограма до його площі дорівнює
$$
S^(*)/S=|a_(1)b_(2)-a_(2)b_(1)|.\label(ref5)
$$

Якщо \(a_(1)b_(2)-a_(2)b_(1) > 0\), то орієнтації всіх орієнтованих паралелограмів зберігаються при перетворенні, а якщо \(a_(1)b_(2)-a_(2) )b_(1)< 0\), то для каждого ориентированного параллелограмма ориентация образа противоположна его ориентации.

Займемося тепер майданами інших фігур. Кожен трикутник може бути доповнений до паралелограма, площа якого дорівнює подвоєній площі трикутника. Тому відношення площі образу трикутника до площі цього трикутника задовольняє рівність \eqref(ref5).

Кожен багатокутник може бути розбитий на трикутники. Отже, формула \ eqref (ref5) справедлива і довільних багатокутників.

Ми не стосуватимемося тут визначення площі довільної криволінійної фігури. Скажімо лише, що у випадках, коли ця площа визначена, вона дорівнює межі площ певної послідовності багатокутників, вписаних у розглянуту фігуру. З теорії меж відомо таке припущення: якщо послідовність \(S_(n)\) прагне до межі \(S\), то послідовність \(\delta S_(n)\), де \(\delta\) постійне, прагне до межі (delta S). На підставі цієї пропозиції ми укладаємо, що формула \ eqref (ref5) справедлива у загальному випадку.

Як приклад знайдемо вираз площі еліпса через його півосі. Раніше ми , що еліпс з півосями \(a\) і \(b\) може бути отриманий стиском кола радіусу \(a\) до прямої, що проходить через її центр. Коефіцієнт стиснення дорівнює \(b/a\). В одному з ми отримали координатний запис стиснення до прямої \(x^(*)=x\), \(y^(*)=\lambda y\). Детермінант із коефіцієнтів у цих формулах дорівнює \(\lambda\), тобто в нашому випадку \(b/a\). Таким чином, відношення площі еліпса до площі кола дорівнює \(b/a\), і ця площа дорівнює \(S=(b/a)\pi a^(2)\). Остаточно маємо
$$
S=pi ab.\nonumber
$$

Образи ліній другого порядку.

Ми бачили, що пряма лінія перетворюється на пряму. Це окремий випадок наступного твердження.

Твердження 3.

Афінне перетворення переводить алгебраїчну лінію в лінію алгебри того ж порядку.

Доведення.

Справді, нехай лінія \(L\) в декартовій системі координат \(O, \boldsymbol(e)_(1), \boldsymbol(e)_(2)\) має рівняння алгебри порядку \(p\). Ми вже , що образи всіх точок лінії \(L\) при афінному перетворенні \(f\) мають в системі координат \(f(O), f(\boldsymbol(e)_(1)), f(\boldsymbol( e)_(2))\) ті ж координати, що і їх прообрази в системі координат \(O, \boldsymbol(e)_(1), \boldsymbol(e)_(2)\). Отже, координати образів у системі \(f(O), f(\boldsymbol(e)_(1)), f(\boldsymbol(e)_(2))\) пов'язані тим же рівнянням алгебри порядку \(p\) ). Цього достатньо, щоб зробити необхідний нам висновок.

З доведеного вище твердження, зокрема, випливає, що лінія другого порядку при афінному перетворенні перейде до лінії другого порядку. Ми доведемо сильніше твердження. Як ми знаємо, лінії другого порядку можна розділити на . Ми побачимо, що клас лінії зберігається під час афінного перетворення. На цій підставі класи ліній, перелічені у зазначеній теоремі, називаються афінними класами. Отже, доведемо нове твердження.

Твердження 4.

Лінія другого порядку, що належить до одного з афінних класів, за будь-якого афінного перетворення може перейти тільки в лінію того ж класу. Кожну лінію другого порядку відповідним афінним перетворенням можна перевести в будь-яку іншу лінію того самого афінного класу.

Доведення.

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

  1. Еліпс – обмежена лінія другого порядку. Крім еліпсів обмежені лише лінії, що складаються з однієї точки, тобто пари уявних прямих, що перетинаються. Оскільки еліпс обмежений і складається більше ніж з однієї точки, він може перейти тільки в еліпс.
  2. Гіпербол складається з двох окремих гілок. Це властивість можна сформулювати те, що буде зрозуміла його незмінність при афінних перетвореннях. Саме, існує пряма лінія, яка не перетинає гіперболу, але перетинає деякі її хорди. З усіх ліній другого порядку тільки гіперболи і пари паралельних прямих мають цю властивість. У гіперболи гілки не прямі лінії, тому при афінному перетворенні вона може перейти тільки в гіперболу.
  3. Парабола - необмежену лінію другого порядку, що складається з одного непрямолінійного шматка. Ця властивість не має ніяких інших ліній другого порядку, і тому парабола може перейти тільки в параболу.
  4. Якщо лінія другого порядку являє собою точку (пару уявних прямих, що перетинаються), пряму (пару збіглися прямих), пару перетинаються або пару паралельних прямих, то з доведених раніше властивостей афінних перетворень слід, що ця лінія не може перейти в лінію ніякого іншого класу.

Доведемо другу частину речення. У вже доведеній нами канонічні рівняння ліній другого порядку написані в декартовій прямокутній системі координат і містять параметри \(a, b, …\) Якщо ми відмовимося від ортонормованості базису, то зможемо зробити подальші спрощення канонічних рівнянь і привести їх до виду, що не містить . Наприклад, заміна координат \(x'=x/a\), \(y'=y/b\) переводить рівняння еліпса \(x^(2)a^(2)+y^(2)b^(2) )=1\) в рівняння \(x'^(2)+y'^(2)=1\), які б не були \(a\) та \(b\). (Останнє рівняння немає рівняння кола, оскільки нова система координат не декартова прямокутна.)

Читач легко покаже, що канонічні рівняння ліній другого порядку переходом до відповідної системи координат можуть бути перетворені на рівняння:

  1. \(x^(2)+y^(2)=1\);
  2. \(x^(2)+y^(2)=0\);
  3. \(x^(2)-y^(2)=1\);
  4. \(x^(2)-y^(2)=0\);
  5. \(y^(2)=2x\);
  6. \(y^(2)-1=0\);
  7. \(y^(2)=0\).

Таку систему координат назвемо афінною канонічною системою координат.

З раніше випливає, що афінне перетворення, яке поєднує афінні канонічні системи координат двох ліній одного афінного класу, поєднує ці лінії. Це закінчує доказ.

Розкладання ортогонального перетворення.

Теорема 1.

Кожне ортогональне перетворення розкладається на твір паралельного перенесення, повороту та, можливо, осьової симетрії.

Доведення.

Нехай (f) - ортогональне перетворення і (vartriangle ABC) - рівнобедрений прямокутний трикутник з прямим кутом (A). При перетворенні \(f\) він перейде в рівний трикутник \(\vartriangle A^(*)B^(*)C^(*)\) з прямим кутом при вершині \(A^(*)\). Теорема буде доведена, якщо, проводячи послідовно паралельне перенесення \(p\), поворот \(q\) і (у разі потреби) осьову симетрію \(r\), ми зможемо поєднати трикутники \(ABC\) і \(A^ (*)B^(*)C^(*)\). Справді, твір (rqp) - афінне перетворення так само, як і (f), а афінне перетворення однозначно визначається образами трьох точок, що не лежать на одній прямій. Тому (rqp) збігається з (f).

Отже, переведемо \(A\) і \(A^(*)\) паралельним переносом \(p\) на вектор \(\overrightarrow(AA^(*))\) (якщо \(A=A^(*) )\), то (p\) - тотожне перетворення). Потім поворотом \(q\) навколо точки \(A^(*)\) сумісний \(p(B)\) з \(B^(*)\) (можливо, і це перетворення виявиться тотожним). Точка \(q(p(C))\) або збігається з \(C^(*)\), або симетрична їй щодо прямої \(A^(*)B^(*)\). У першому випадку мета вже досягнута, а в другому буде потрібна осьова симетрія щодо зазначеної прямої. Теорему доведено.

Слід пам'ятати, що отримане розкладання ортогонального перетворення однозначно. Більш того, можна поворот або паралельне перенесення розкласти у добуток осьових симетрій, твір паралельного перенесення та повороту уявити як один поворот і так далі. Ми не уточнюватимемо, як це зробити, а з'ясуємо наступну загальну властивість усіх таких розкладів.

Твердження 5.

При будь-якому розкладанні ортогонального перетворення на твір будь-якого числа паралельних переносів, поворотів і осьових симетрій парність числа осьових симетрій, що входять до розкладання, та сама.

Доведення.

Для доказу розглянемо на площині довільний базис і простежимо за зміною його орієнтації (напрями найкоротшого повороту від \(\boldsymbol(e)_(1)\) до \(\boldsymbol(e)_(2)\)) при здійснюваних перетвореннях. Зауважимо, що поворот і паралельне перенесення не змінюють орієнтацію жодного базису, а осьова симетрія змінює орієнтацію будь-якого базису. Тому, якщо це ортогональне перетворення змінює орієнтацію базису, то будь-яке його розкладання має входити непарне число осьових симетрій. Якщо ж орієнтація базису не змінюється, то число осьових симетрій, що входять до розкладання, може бути лише парним.

Визначення.

Ортогональні перетворення, які можуть бути розкладені у твір паралельного перенесення та повороту, називаються ортогональними перетвореннями першого роду , а решта - ортогональними перетвореннями другого роду .

Ортогональне перетворення в декартовій прямокутній системі координат записується:
$$
\begin(array)(cc)


\end(array).\nonumber
$$
При верхніх знаках коефіцієнтів у (y) у цих формулах детермінант, складений з коефіцієнтів, дорівнює +1, а при нижніх знаках він дорівнює -1. Звідси і з формули \ eqref (ref4) випливає таке твердження.

Твердження 6.

Ортогональне перетворення першого роду записується у декартовій прямокутній системі координат формулами
$$
\begin(array)(cc)
& x^(*)=x \cos \varphi \mp y \sin \varphi+c_(1),\\
& y^(*)=x \sin \varphi \pm y \cos \varphi+c_(2).
\end(array).\nonumber
$$
з верхніми знаками у коефіцієнтів при (y), а ортогональне перетворення другого роду - з нижніми знаками.

Розкладання афінного перетворення.

Ми бачили, наскільки афінне перетворення може змінити площину: коло може перейти в еліпс, правильний трикутник - цілком довільний. Здавалося б, ніякі кути при цьому не можуть зберегтися. Проте має місце таке твердження

Твердження 7.

Для кожного афінного перетворення є дві взаємно перпендикулярні прямі, які переходять у взаємно перпендикулярні прямі.

Доведення.

Для доказу розглянемо якесь коло. При цьому афінному перетворенні вона перейде в еліпс. Кожна вісь еліпса - безліч середин хорд, паралельних до іншої осі. При афінному перетворенні хорда перейде у хорду, паралельність має зберегтися, а середина відрізка перетворюється на середину його образу. Тому прообрази осей еліпса - відрізки, що володіють тією самою властивістю: кожен з них є безліч середин хорд кола, паралельних іншому відрізку. Такі відрізки неодмінно є двома взаємно перпендикулярними діаметрами кола. Це те, що нам потрібно: існують два взаємно перпендикулярні діаметри кола, які переходять у взаємно перпендикулярні відрізки - осі еліпса.

Варто відзначити один особливий випадок: коло при афінному перетворенні може перейти в коло. В цьому випадку те ж міркування проходить з будь-якими двома взаємно перпендикулярними діаметрами кола-образу. Очевидно, що при цьому будь-які два взаємно перпендикулярні напрямки залишаються перпендикулярними.

Визначення.

Два взаємно перпендикулярні напрямки називаються головними або синугулярними напрямками афінного перетворення (f), якщо вони переходять у взаємно перпендикулярні напрямки.

Теорема 2.

Кожне афінне перетворення розкладається на твір ортогонального перетворення та двох стисків до двох взаємно перпендикулярних прямих.

Доведення.

Доказ аналогічний доказу. Розглянемо афінне перетворення \(f\) і виберемо рівнобедрений прямокутний трикутник \(ABC\) так, щоб його катети \(AB\) і \(AC\) були направлені вздовж головних напрямів перетворення \(f\). Позначимо через \(A^(*)\), \(B^(*)\) та \(C^(*)\) образи його вершин. Зробимо таке ортогональне перетворення \(g\), при якому \(g(A)=A^(*)\), а точки \(g(B)\) та \(g(C)\) лежать відповідно на променях \(A^(*)B^(*)\) і \(A^(*)C^(*)\). (Цього легко досягти, як і в теоремі 1, паралельним перенесенням, поворотом та осьовою симетрією.)

Нехай \(\lambda=|A^(*)B^(*)|/|A^(*)g(B)|\), a \(\mu=|A^(*)C^(*) |/|A^(*)g(C)|\). Тоді стиснення \(p_(1)\) до прямої \(A^(*)C^(*)\) щодо \(\lambda\) переведе \(g(B)\) в \(p_(1) g(B)=B^(*)\) і не зрушить точок \(A^(*)\) і \(g(C)\). Аналогічно, стиснення \(p_(2)\) до прямої \(A^(*)B^(*)\) переведе \(g(C)\) в \(p_(2)g(C)=C^ (*)\) і не зрушить точок прямої \(A^(*)B^(*)\).

Це означає, що твір \(p_(2)p_(1)g\) переводить точки \(A\), \(B\) і \(C\) у точки \(A^(*)\), \ (B^(*)\) і \(C^(*)\) так само, як і задане нам перетворення \(f\). Відповідно до раніше доведеного маємо \(p_(2)p_(1)g=f\), як і потрібно.

У цій статті я розповім про одну незвичайну формулу, яка дозволяє поглянути під новим кутом на афінні перетворення, а особливо на зворотні завдання, що виникають у зв'язку з цими перетвореннями. Зворотними я називатиму задачі, що вимагають обчислення зворотної матриці: знаходження перетворення по точках, рішення системи лінійних рівнянь, перетворення координат при зміні базису і т.д. Відразу зазначу, що в статті не буде ні фундаментальних відкриттів, ні зменшення алгоритмічної складності - я просто покажу симетричну формулу, що легко запам'ятовується, за допомогою якої можна вирішити несподівано багато ходових завдань. Для любителів математичної строгості є більш формалізоване викладення тут (орієнтовано на студентів) і невеликий задачник ось тут.

Афінне перетворення зазвичай задається матрицею та вектором трансляції та діє на вектор-аргумент за формулою

Втім, можна обійтися і без , якщо скористатися аугментованою матрицею та однорідними координатами для аргументу (як добре відомо користувачам OpenGL). Однак виявляється, крім цих форм запису можна використовувати детермінант особливої ​​матриці, в якій містяться як координати аргументу, так і параметри, що задають перетворення. Справа в тому, що детермінант має властивість лінійності по елементах будь-якого свого рядка або стовпця і це дозволяє використовувати його для представлення афінних перетворень. Ось, власне, як можна висловити дію афінного перетворення на довільний вектор:


Не поспішайте тікати в жаху - по-перше, тут записано перетворення, що діє на просторах довільної розмірності (звідси так багато всього), а по-друге, хоча формула і виглядає громіздко, але запам'ятовується і використовується. Для початку, я виокремлю логічно пов'язані елементи рамками та кольором


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

Виділений синім кольором вектор - це аргумент, на який діє афінне перетворення . Тут і далі нижні індекси позначають компонент вектора. У верхній матриці компоненти займають майже весь перший стовпець, крім них у цьому стовпці тільки нуль (згори) та одиниця (знизу). Всі інші елементи в матриці - це вектори параметри (нумеруються верхнім індексом, взятим у дужки, щоб не переплутати зі ступенем) і одиниці в останньому рядку. Параметри виділяють серед безлічі всіх афінних перетворень те, що нам потрібне. Зручність і краса формули в тому, що зміст цих параметрів дуже простий: вони задають афінне перетворення, яке перекладає вектори в . Тому вектори ми називатимемо «вхідними» (у матриці вони обведені прямокутниками) - кожен із них покомпонентно записаний у своєму стовпці, знизу дописується одиниця. Зверху записуються «вихідні» параметри (виділені червоним кольором), але тепер вже не покомпонентно, а як цілісна сутність.

Якщо когось дивує такий запис, то згадайте про векторний твір

Де була дуже схожа структура і перший рядок так само займали вектори. При цьому необов'язково, щоб розмірність векторів і збігалася. Усі детермінанти вважаються як завжди і допускають звичайні «трюки», наприклад, до будь-якого стовпця можна додати інший стовпець.

З нижньою матрицею все гранично просто - вона виходить з верхнього креслення першого рядка і першого стовпця. Недолік у тому, що доводиться вважати детермінанти, проте якщо це рутинне завдання перекласти на комп'ютер, то виявиться, що людині залишиться лише правильно заповнити матриці числами його завдання. При цьому за допомогою однієї формули можна вирішити досить багато поширених на практиці завдань:

Афінне перетворення за трьома точками на площині

Під впливом невідомого афінного перетворення три точки на площині перейшли інші три точки. Знайдемо це афінне перетворення.
Для певності, нехай наші вхідні точки


а результатом дії перетворення стали точки

Знайдемо афінне перетворення.

Насправді вирішувати це завдання можна по-різному: за допомогою системи лінійних рівнянь, барицентричних координат… але ми підемо своїм шляхом. Думаю, за використаними позначеннями Ви здогадуєтеся до чого я хилю: беремо рівняння для розмірності і підставляємо як вхідні параметри, а - як вихідні


а далі залишається лише порахувати детермінанти
Наметане око легко виявить тут поворот на і трансляцію на .
Коли формула застосовна?
Вхідні та вихідні вектори можуть мати різну розмірність - формула застосовна для афінних перетворень, що діють на просторах будь-якої розмірності. Втім, вхідних точок має бути достатньо і вони не повинні «злипатися»: якщо афінне перетворення діє з мірного простору - точки повинні утворювати невироджений симплекс з точки. Якщо ця умова не виконана, то однозначно відновити перетворення неможливо (ніяким методом взагалі, не тільки цим) – формула попередить про це нулем у знаменнику.
Навіщо відновлювати афінні перетворення програмісту?
Часто потрібно знайти перетворення між двома картинками (для розрахунку положення камери, наприклад). Якщо у нас знайдеться кілька надійних особливих точок (фіч) на цих зображеннях, ну або просто не хочеться починати відразу з ранзаків та боротьби з аутлаєрами, то можна використовувати цю формулу.


Таким чином, формула ховає в собі зворотну матрицю та множення на ще одну матрицю на додачу. Цей вираз і є стандартним рішенням задачі знаходження лінійного перетворення по точках. Зверніть увагу, що роблячи другу матрицю у творі одиничною, ми отримаємо просто зворотну матрицю. З її допомогою вирішується система лінійних рівнянь та завдання, які до неї зводяться: знаходження барицентричних координат, інтерполяція поліномами Лагранжа тощо. Однак, уявлення у вигляді твору двох матриць, не дає нам отримати ті самі «два погляди», пов'язані з розкладанням по першому рядку і першому стовпцю.

Інтерполяція Лагранжа та її властивості

Нагадаю, що інтерполяція Лагранжа - це знаходження полінома щонайменше проходить через точки , , , . Не те щоб це було поширене в програмістській практиці завдання, але все одно давайте його розглянемо.
Як пов'язані поліноми та лінійні перетворення?
Справа в тому, що поліном
можна розглядати як лінійне перетворення, яке відображає вектор . Отже, завдання інтерполяції точок , , , зводиться до знаходження такого лінійного перетворення, що


а це ми вміємо робити. Підставимо правильні літери в правильні осередки та отримаємо формулу


Доказ, що це буде саме поліном Лагранжа (а не чийсь інший), можна переглянути в . До речі, вираз у знаменнику – це визначник Вандермонда. Знаючи це і розклавши детермінант у чисельнику по першому рядку, дійдемо більш звичної формули для полінома Лагранжа.
Завдання на поліном Лагранжа
Чи складно користуватися цим? Спробуймо сили на задачі: знайти поліном Лагранжа, що проходить через точки , і .

Підставимо ці точки у формулу


На графіці все виглядатиме так.

Властивості полінома Лагранжа
Розклавши верхній детермінант по першому рядку та першому стовпцю, ми поглянемо на поліном Лагранжа з двох різних сторін. У першому випадку отримаємо класичну формулу з Вікіпедії, а в другому – запис полінома у вигляді суми одночленів, де


А ще ми тепер можемо порівняно просто доводити досить хитромудрі твердження. Наприклад, в один рядок доводиться, що сума базисних поліномів Лагранжа дорівнює одиниці і що поліном Лагранжа, що інтерпрелює , , , має в нулі значення . Ну і не Лагранжем єдиним – подібний підхід можна застосувати до інтерполяції синусами-косинусами чи якимись іншими функціями.

Висновок

Дякую всім, хто дочитав до кінця. У цій статті ми вирішували стандартні завдання за допомогою однієї нестандартної формули. Мені вона сподобалася тим, що, по-перше, показує, що афінні (лінійні) перетворення, барицентричні координати, інтерполяція і навіть поліноми Лагранжа тісно пов'язані. Адже коли вирішення завдань записуються однаково, думка про їх спорідненість виникає сама собою. По-друге, більшу частину часу ми просто розставляли вхідні дані до правильних осередків без додаткових перетворень.

Завдання, які ми розглядали, можна вирішити цілком звичними методами. Однак, для задач невеликої розмірності або навчальних завдань формула може бути корисною. Крім того, мені вона здається гарною.