МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КІСіТ КНЕУ ім. В. Гетьмана
Самостійна робота №5
з предмету: "Методи та засоби комп’ютерних інформаційних технологій”
за ІІ семестр 2010-2011 н.р.
Тема: Математичні основи комп’ютерної графіки .
Київ-2010
Математичні основи комп’ютерної графіки
Для того щоб відображати графічні об'єкти на дисплеї потрібно мати якийсь інструмент, що дозволяє легко і просто описувати ці об'єкти на мові математики. Положення точок на площині дуже зручно описувати за допомогою декартової системи координат. Щоб створити декартову систему координат потрібно провести дві прямі неколінеарних лінії, які називають осями. Нехай вони перетинаються в точці 0, яку називають початком координат. Виберемо на побудованих осях одиницю виміру. Тоді положення будь-якої точки площини можна описати через координати цієї точки, які представляють собою відстані від початку координат до проекцій точки на відповідні осі координат. Проекцією точки на координатну вісь називається точка перетину прямої, що проходить через задану точку і паралельної іншої осі координат. Взагалі введені осі координат можуть розташовуватися під довільним кутом (рис. 1).
Рис.1.
Однак, на практиці зручно користуватися системою координат із взаємно перпендикулярними осями. Така система координат називається ортогональною. Осі координат мають назви; горизонтальна вісь називається віссю абсцис (Ox), вертикальна - віссю ординат (Oy). Таким чином, точка на площині представляється двома своїми координатами, що записується у вигляді двовимірного вектора P = (x, y).
Математичний апарат опису точок на площині за допомогою декартової системи координат ідеально підходить для виконання різних афінних перетворень над точками (зсув, масштабування, обертання).
Крапку P (x, y), задану на площині можна перенести (зрушити) у нову позицію шляхом додавання до координат цієї точки констант переносу. Для довільної точки P = (x, y), яка переміщується в нову точку P' = (x', y'), зрушуючи на Tx одиниць паралельно осі абсцис і на Ty одиниць паралельно осі ординат, можна записати такі вирази: x' = x + Tx, y' = y + Ty. Так, наприклад, точка з координатами P(1,2) зміщуючись на відстань (5,7) перетворюється в точку P'(6,9). Визначаючи точку і перенос як вектор-рядка P = (x, y), P' = (x', y') і T = (Tx, Ty) можна записати перетворення переносу (зсуву) у векторній формі: (x', y') = (x, y) + (Tx, Ty) або P' = P + T. Перетворенню можна піддати не тільки одні точки. Геометричний об'єкт можна перемістити, застосувавши до кожної його точки перетворення переносу. Так, якщо в описі об'єкта є відрізки прямої, то досить застосувати перетворення до кінців відрізка і потім провести пряму лінію між двома перетвореними точками. Це правило справедливо і для операцій масштабування і повороту. На рис.2 представлений результат дії на трикутник операції перенесення на відстань (2, -1).
Рис.2.
Точки можна піддати операції масштабування (розтягування або стиснення) в Sx разів вздовж осі абсцис і в Sy разів вздовж осі ординат. Отримані в результаті нові точки будуть виражатися як: x' = x * Sx; y' = y * Sy. Визначивши S як
дані вирази можна записати в матричній формі:
або P' = P * S. На рис.3 показаний трикутник, промасштабованний з коефіцієнтами 0,5 за осю абсцис і коефіцієнтом 2 вздовж осі ординат.
Рис. 3.
Слід зазначити, що операція масштабування здійснюється відносно початку координат. У результаті перетворення об'єкт може стати менше/більше в розмірах і ближче/далі від початку координат. Пропорції об'єкта також можуть змінитися при масштабуванні з різними коефіцієнтами: Sx≠Sy. Для збереження пропорцій необхідно, щоб масштабні коефіцієнти були рівні: Sx = Sy.
Точка площині P = (x, y) може бути повернена на довільний кут щодо початку координат і перейде в нову точкуP' = (x', y') (рис. 4)
Рис. 4.
Виведемо формули для перерахунку точки (x, y) в точку (x', y'). Позначимо відстань від початку координат до точки P (x, y) через ρ. Очевидно, що відстань від початку координат до точки P'(x', y') також буде ρ. Нехай Q і Q'- проекції точок P і P'соответственно на вісь абсцис. Тоді з прямокутного трикутника OP'Q' і тригонометричних визначень синуса і косинуса маємо:
Домножимо праву і ліву частини рівнянь на ρ.
Використовуючи найпростіші тригонометричні властивості прямокутного трикутника OPQ, слід зауважити, що ρcosθ = x, а ρsinθ = y. Таким чином, формула "перекладу" точки P (x, y) в точку P'(x', y') поворотом на кут відносно початку координат буде:
У матричному вигляді перетворення обертання буде виглядати так:
Так трикутник з координатами вершин (20,0), (60,0), (40,100) після повороту на кут 45 градусів за годинниковою стрілкою відносно початку координат (φ=- 45 °) буде мати нові значення координат вершин: .
Точка площині P (x, y) може бути легко відображена щодо прямих y = 0, x = 0, y = x наступним чином. Відображення відносно прямої y = 0 (вісь абсцис) може бути отримано з використанням матриці. Так, наприклад, точкаP = (2,3) при такому відображенні перетворюється в точку (рис. 5).
Подібним чином матриця відображення відносно прямої x = 0 (вісь ординат) буде мати вигляд. Точка P = (2,3) при відображенні щодо осі ординат перетворюється в точку (рис.5).
Відображення відносно прямої y = x здійснюється за допомогою матриці. Точка P = (2,3) в результаті такого відображення перетворюється в точку (рис. 5).
Рис.5.
Розглянуті вище аффінниє перетворення переносу, масштабування, обертання і відображення можна записати в матричній формі наступним чином: P'= P + T, P' = P * S, P'= P * R, P' = P * M, де P' - координати перетвореної точки, P - координати вихідної точки, T - вектор зсуву (translate), S - матриця масштабування (scale), R - матриця обертання (rotate), M - матриця відбиття (mirror). На жаль, операція переносу (зсуву) реалізується окремо (за допомогою додавання) від масштабування, повороту та відображення (за допомогою множення). Тим не менш, існує можливість, щоб усі ці елементарні перетворення (перенесення, масштабування, обертання, віддзеркалення) можна було реалізувати за допомогою лише операцій множення матриць. Дана можливість реалізується за допомогою так званих однорідних координат точки.
Однорідне уявлення двовимірної точки (x, y) у загальному випадку має вигляд (wx, wy, w), де w - будь-який ненульовий скаляр, іноді званий множником. При цьому якщо для точки задано її представлення до однорідних координатах P (x,y,w), то знайти її двовимірні координати можна поділивши перші дві на скалярний множник (x/w, y/w). Взагалі двовимірне уявлення точки (x,y,w) є її проекція на площину w = 1 (рис.6).
Рис. 6.
Тепер точки площини можна описувати трьохелементним вектором, а матриці перетворення повинні мати розмір 3х3. У загальному випадку перетворення точки (x, y) у нову точку (x', y') можна представити таким чином
.
Рівняння переносу (зсуву), масштабування і обертання записуються у вигляді матриць перетворення однорідних координат наступним чином:
де Tx, Ty - величини зсуву, Sx, Sy - масштабні множники, - кут повороту.
Перевага такого підходу (матричних формул) полягає в тому, що поєднання послідовних елементарних перетворень при цьому значно спрощується. Розглянемо наступну послідовність перетворень: масштабування вихідної точки P (x,y) при масштабних коефіцієнти Sx і Sy, а потім зміщення її (після масштабування) на Tx і Ty. Запишемо перетворення масштабування і перенесення (зсуву) через однорідні координати точки:
Підставимо перше рівняння в друге:
Дві квадратні матриці незалежні від перетворюваної точки (x,y) і тому їх можна перемножити між собою.
У результаті отримаємо
Таким чином, результуюча матриця, отримана множенням двох вихідних матриць перетворення, є поєднання елементарних перетворень. Незалежно від кількості елементарних перетворень в послідовності, можна завжди зробити суміщення так, щоб тільки одна матриця 3х3 представляла всю послідовність перетворень. Слід зауважити, що якщо і є матриці елементарних перетворень, то існує дві можливі композиції: і . Однак, результати таких перетворень будуть різні, в силу того, що множення матриць не є комутативною операцією. Якщо геометричний об'єкт складається з великої кількості вершин (точок), то з обчислювальної точки зору набагато більш ефективніше і простіше застосовувати композитну (результуючу) матрицю перетворення замість того, щоб послідовно використовувати ("множити на") одну за одною елементарні матриці.
До цих пір ми розглядали перетворення як переклад множини точок, які належать об'єкту, в деяку іншу множину точок, причому обидві ці множини описані в одній і тій же системі координат. Іншими словами система координат у нас залишалася незмінною, а сам об'єкт перетворювався щодо початку координат. Еквівалентним способом опису перетворення є зміна системи координат. Такий підхід виявляється корисним і зручним, коли необхідно зібрати разом багато об'єктів, кожен з яких описаний у своїй власній локальній системі координат, і виразити (перерахувати) їх координати в одній глобальній (світової) системі координат. Наприклад, точка на рис.7 описана в чотирьох системах координат, і має відповідні координати: (11,10), (8,8), (12,10), (3,3)
Рис. 7.
Перетворення з системи координат 1 в систему координат 2 є; з 2 в 3 є; з 3 в 4 є. У загальному випадку перетворення переводить осі системи координат j в осі системи координат i. Якщо - точка, координати якої задані в системі координат j, то буде справедлива запис. Так, наприклад, у розглянутому випадку записується в однорідних координатах, а. І перетворення буде мати вигляд:
Перетвореннямає зворотнє - перетворення із системи координат 2 в систему 1, причому. У даному випадку
Неважко перевірити, що (одинична матриця). Крім того буде справедливо і такий вираз . Іншими словами, перетворення з системи координат 1 в систему координат 3 є добуток двох матриць, перша з яких описує перетворення з системи 1 в систему 2, а друга - з системи 2 в систему 3
Для введення тривимірної декартової системи координат проведемо три спрямовані взаємно перпендикулярні прямі лінії, звані осями, так щоб вони перетиналися в одній точці - на початку координат. Виберемо на осях одиницю виміру. Тоді положення будь-якої точки простору можна описати через координати цієї точки, які представляють собою відстані від початку координат до проекцій точки на відповідні осі. Така система координат називається ортогональною. Таким чином, положення точки P в просторі описується її координатами: P=(x, y, z). Взаємне розташування координатних осей в ортогональній системі тривимірного простору може бути двох видів. При додаванні третьої осі до двовимірної системі координат вісь Oz можна направити як від спостерігача в площину аркуша, так і від площині аркуша до спостерігача.
Рис.8.
У першому випадку систему координат прийнято називати лівосторонньої, у другому - правосторонньою. Відомий спосіб визначення типу системи по долонях. Так для лівої долоні великий (вісь Y), вказівний (вісь Z) і середній (вісь X) пальці утворюють ліву трійку ортогональних векторів.
У тривимірному просторі значно зростає різноманітність геометричних об'єктів. При роботі на двовимірній площині ми розглядали відрізки, плоскі криві й багатокутники. При переході в тривимірний простір це різноманіття примітивів можна розглядати в різних площинах, а також тут з'являються просторові криві: ρ (t) = [x (t), y (t), z (t)], tε [a, b]. Крім усього іншого в тривимірному просторі присутні просторові об'єкти - ділянки криволінійних поверхонь і об'ємні тіла - паралелепіпеди, еліпси, тетраедри та ін.
При роботі в тривимірному просторі виникає проблема опису форми об'єктів. На практиці набули широкого поширення три основних типи моделей тривимірних об'єктів: опис об'єкта поверхнями, суцільними тілами і за допомогою дротяної сітки. При першому підході об'єкт представляється у вигляді тонкої поверхні, під яким знаходиться порожній незаповнений простір. Прикладом такого об'єкта може виступати нерозбита шкаралупа абсолютно порожнього всередині яйця. Поверхня об'єкта може бути описана різними математичними моделями. Поверхні, задані у вигляді x = x (u, v), y = y (u, v), z = z (u, v), де u, v - параметри, що змінюються в заданих межах, відносяться до класу параметричних. Для однієї фіксованої пари значень u, v можна обчислити положення тільки однієї точки поверхні. Для повного уявлення всієї поверхні необхідно з певним кроком перебрати безліч пар u, v з діапазону їх змін, обчислюючи для кожної пари значення XYZ в тривимірному просторі. Дуже широке поширення одержали параметричні Бікубічні поверхні, за допомогою яких досягається безперервність складовою функції та її перших похідних (функція, складена з кількох суміжних Бікубічних ділянок, буде мати безперервність і гладкість в місцях стиковки). Основною перевагою параметричного опису є можливість побудови об'єкта з дуже складною і хитромудрою формою. Недоліком такого способу опису є великі обчислювальні витрати при побудові поверхонь. Окремим випадком параметричних поверхонь є поверхні першого порядку. З таких поверхонь можна скласти опис форми об'єкта типу полігонального поля. Такими полями називають серію суміжних багатокутників, що не мають розривів між собою. Кожне ребро такого поля є загальним для суміжних багатокутників. У результаті чого складова функція, що описує поверхню, має безперервністюь, а похідна має розриви в місцях стику ділянок поверхонь. В даний час полігональний спосіб опису тривимірних об'єктів є одним з найпоширеніших і затребуваних. Так, наприклад, продуктивність сучасних графічних процесорів (відеокарт) визначається кількістю виведених полігонів в одиницю часу, як правило, в секунду.
Ще один спосіб опису поверхонь, який слід згадати, полягає в поданні форми об'єкта безліччю окремих точок, що належать цій поверхні. Теоретично при нескінченному збільшенні числа точок така модель забезпечує безперервну форму опису. Точки, що використовуються для опису, повинні розташовуватися досить близько один до одного, щоб можна було сприйняти поверхню без грубих втрат і спотворень. Поточечно опис поверхонь застосовують у тих випадках, коли поверхня дуже складна, не має потрібної гладкості, а детальне уявлення численних геометричних особливостей важливо для практики.
Опис об'єкта суцільними геометричними конструктивами (твердотільне моделювання) полягає в представленні складного об'єкта у вигляді об'єднання простих об'ємних примітивів. Зазвичай такі примітиви включають куби, циліндри, конуси, еліпсоїди та інші подібні форми. Булеві операції над примітивами дозволяють досягати об'єднання, віднімання і виділення загальних частин примітивів. Структури даних моделі цього виду ідентичні бінарному дереву, причому вузли (нетермінальні вершини) дерева є операторами над примітивами, а листя - примітивами.
Слід також відзначити метод опису об'єкту за допомогою дротяної сітки (wire-frame), суть якого полягає в представленні поверхні серією пересічних ліній, що належать поверхні об'єкта. Як правило, в якості таких ліній прийнято використовувати відрізки прямих. Перевагою дротяного подання є простий і ефективний спосіб побудови об'єктів.
Для найкращого сприйняття форми об'єкта необхідно мати його подання в тривимірному просторі. Як правило, наочне уявлення про об'єкт можна отримати за допомогою виконання операцій обертання і перенесення, а також шляхом побудови його проекцій. Як і двовимірному випадку, існує три основних перетворення в тривимірному просторі: перенесення (зміна положення), зміна масштабу і обертання.
Перетворення переміщення точки тривимірного простору P=(x, y, z) у нову точку P'= (x', y', z') можна записати наступним чином: x'= x + Tx, y'= y + Ty, z'= z+Tz, де Tx, Ty, Tz - величини переміщення у напрямках x, y, z відповідно. Визначаючи точку і операцію переносу як вектор-рядок P = (x, y, z), P'= (x', y', z'), T = (Tx, Ty, Tz), перетворення зсуву можна записати у векторній формі : (x', y', z') = (x, y, z) + (Tx, Ty, Tz) або P' = P + T.
Крапку тривимірного простору P = (x, y, z) можна піддати операції масштабування (розтягування або стиснення) в Sx раз по осі абсцис, у Sy раз по осі ординат і в Sz раз по осі аплікат. Отримана в результаті перетворена точка P'= (x', y', z') буде виражатися як: x'= x * Sx, y' = y * Sy, z'= z * Sz. Визначивши S як матрицю
вирази для масштабування можна переписати в матричній формі:
або P '= P * S. Як і в двовимірному випадку операція масштабування здійснюється відносно початку координат. Тому якщо масштабовані множники Sx, Sy, Sz > 1, то перетворюються точка віддаляється від початку координат, якщо ж Sx, Sy, Sz <1 то точка наблизиться до початку координат.
Тривимірні перетворення обертання є більш складними, ніж їх двовимірні аналоги. У даному випадку необхідно додатково задати вісь обертання. Розглянемо спочатку найпростіші випадки, коли вісь обертання збігається з однією з координатних осей.
Знайдемо матрицю повороту навколо осі OZ на кут γ. Будемо записувати матрицю перетворення для лівосторонньої системи координат. Слід зазначити, що в лівосторонньої системі координат позитивними будуть повороти за годинниковою стрілкою, якщо дивитися з кінця позитивної півосі в напрямку початку координат (рис. 9).
Рис. 9.
У даному випадку вісь повороту перпендикулярна до площини малюнка, і оскільки ми використовуємо лівобічну систему координат, то обертання навколо осі OZ зводиться до повороту точки на площині XOY на кут γ. При цьому координата z точки обертання не змінюється. Таким чином, формулу повороту точки (x, y, z) навколо осі OZ на кут γ можна записати наступним чином:
або в матричній формі
Змінимо тепер становище координатних осей лівосторонньої системи координат таким чином, щоб вісь OY була спрямована в площину малюнка. Тоді позитивна піввісь OZ будет спрямована горизонтально вправо, а позитивна піввісь OX - вертикально вгору (рис. 10).
Рис. 10.
Отримати формулу обертання точки навколо осі OY на кут β можна замінивши x на z, y на x в формулі двовимірного повороту. При цьому координата точки y при такому обертанні не змінюється. У результаті чого формула обертання точки (x, y, z) навколо осі OY на кут β будет мати наступний вигляд:
або в матричній формі
Аналогічно робимо з віссю обертання OX. Змінимо положення координатних осей так, щоб вісь OX була спрямована в площину малюнка, вісь OY - горизонтально вправо, вісь OZ - вертикально вгору (рис. 11).
Рис. 11.
Замінивши у формулі двовимірного повороту y на z, x на y, отримаємо формулу обертання точки (x, y, z) навколо осі OX на кут α:
або в матричній формі
Спосіб двовимірного плоского обертання навколо довільної точки може бути узагальнений на випадок обертання навколо довільної осі тривимірного простору. Нехай довільна вісь обертання задається вектором, причому - точка, яка визначає початок вектора, а - кінець вектора (рис. 12)
Рис. 12.
Обертання навколо задається осі (вектора) на кут θ виконується в кілька етапів:
1. Перенесення вектора так, щоб початок вектора (точка) збіглася з початком системи координат. Це здійснюється за допомогою операції зсуву T (-a,-b,-c);
2. Поворот навколо осі OY на кут β так, щоб вектор (m, l, n) опинився в площині OYZ: ;
3. Поворот навколо осі OX на кут α так, щоб вектор (m ', l', n ') співпав з віссю OZ:;
4. Поворот навколо осі OZ на заданий кут θ: Rx (θ);
5. Виконання перетворення, зворотного, зробленому на кроці 3. Тобто поворот навколо осі OX на кут -α;
6. Виконання перетворення, зворотного, зробленому на кроці 2. Тобто поворот навколо осі OY на кут-β;
7. Виконання перетворення, зворотного, зробленому на кроці 1. Тобто зрушення на вектор (a, b, c): T (a, b, c)
Даний алгоритм обертання навколо довільної осі можна записати за допомогою множення серії елементарних матриць:
, Де V - вихідна точка, V '- крапка після повороту.
Залишається визначити чому дорівнюють кути поворотів α і β (рис. 13)
Рис.13.
З простих тригонометричних співвідношень можна отримати такі формули:
Як видно, операції тривимірного масштабування і обертання можуть бути реалізовані за допомогою множення вектор-рядка (точки) на матрицю перетворення. Операція ж зсуву реалізується через складання двох вектор-рядків. Аналогічно тому, як всі двовимірні перетворення (зсув, масштабування і обертання) описуються матрицями розміром 3х3 (через однорідні координати), тривимірні перетворення можуть бути представлені у вигляді матриць розміром 4х4. І тоді точка тривимірного простору (x, y, z) записується в однорідних координатах як Wx, Wy, Wz, W, де W≠ 0. Якщо W≠ 1, то для отримання тривимірних декартових координат точки (x, y, z) перші три однорідні координати потрібно розділити на W. Звідси випливає, що дві точки і в просторі однорідних координат описують одну й ту ж точку тривимірного простору в тому і тільки тому випадку, коли для будь-якої константи c не дорівнює нулю. Таким чином, перетворення точки тривимірного простору P = (x, y, z) у нову точку P'= (x', y', z') з використанням однорідних координат можна записати як:
Рівняння тривимірного зсуву, масштабування і обертання записуються у вигляді матриць перетворення однорідних координат наступним чином:
де Tx, Ty, Tz - величини зсуву по осях OX, OY, OZ відповідно, Sx, Sy, Sz - масштабні множники за OX, OY, OZ свідповідно,- матриці обертання навколо осей OX, OY, OZ на кути α, β, γ відповідно .
Як і в двовимірному випадку, матричний підхід дозволяє поєднати два або більше елементарних перетворення в одне. Таким чином, послідовне застосування двох перетворень і може бути замінено застосуванням одного перетворення T, причому матриця T буде дорівнює добутку матриць перетвореньі. Це легко можна побачити на простому прикладі. Нехай точка (x, y, z) трансформується в точку (x', y', z') за допомогою перетворення:. Застосовуючи потім перетворення до точки (x', y', z'), отримаємо точку. Тепер підставляючи перше вираження в друге, отримаємо: . Причому порядок застосування перетворень повинен бути збережений при перемножуванні відповідних матриць.
Процес виведення тривимірної графічної інформації по суті є більш складним, ніж відповідний двовимірний процес. Складність, характерна для тривимірного випадку, обумовлюється тим, що поверхня виводу не має графічного третього виміру. Така невідповідність між просторовими об'єктами і плоскими зображеннями усувається шляхом введення проекцій, які відображають тривимірні об'єкти на двовимірної проекційної картинної площини. У процесі виведення тривимірної графічної інформації ми задаємо видимий обсяг у світовому просторі, проекцію на картинну площину і поле виводу на видовий поверхні. У загальному випадку об'єкти, визначені у тривимірному світовому просторі, відсікаються по межах тривимірного видимого об'єму і після цього проектуються. Те, що потрапляє в межі вікна, якє самє є проекцією видимого об'єму на картинну площину, потім перетворюється в поле виводу і відображається на графічному пристрої. У загальному випадку операція проекції перетворює точки, задані в системі координат розмірності n, в точки системи координат розмірності меншою, ніж n. У нашому випадку точка тривимірного простору відображається в двовимірне простір. Проекція тривимірного об'єкта будується за допомогою прямих проектуючих променів, які називаються проекторами і які виходять з центру проекції, проходять через кожну точку об'єкту і, перетинаючи картинну площину, утворюють проекцію. На рис. 14 представлено дві різні проекції одного й того ж відрізка та проектори, що проходять через його кінцеві точки.
Рис. 14.
Визначений таким чином клас проекцій відомий під назвою плоских геометричних проекцій, тому що проектування здійснюється на площину, а не на викривлену поверхню і в якості проекторів використовують прямі лінії. Плоскі геометричні проекції можна підрозділити на два основні класи: центральні (перспективні) і паралельні (ортогональні). Різниця між ними визначається співвідношенням між центром проекції і проекційною площиною. Так, якщо відстань між ними, кінцева, то проекція буде центральною, якщо ж вона нескінченно, то - паралельною. При описі центральної проекції ми явно задаємо її центр проекції, у той час як для паралельної проекції ми вказуємо лише напрям проектування. Центр проекції породжує візуальний ефект, аналогічний тому, до якого приводять фотографічні системи і використовується у випадках, коли бажано досягти певної міри реалізму. Слід зауважити, що розмір центральної проекції об'єкта змінюється обернено пропорційно відстані від центру проекції до об'єкта. Паралельна проекція породжує менш реалістичне зображення, тому що відсутнє перспективне "укорочування" об'єкта. Проекція фіксує справжні розміри об'єкта, і паралельні лінії залишаються паралельними.
У загальному випадку задача отримання центральної проекції полягає в тому, щоб визначити проекцію точки об'єкта, розташовану в довільному місці тривимірного простору, на деяку площину в цьому самому просторі, звану картинної. Знаходження центральної проекції є окремим випадком задачі визначення перетину променя L з площиною α у тривимірному просторі (рис. 15)
Рис. 15.
У машинній графіці задача обчислення центральної проекції, як правило, сильно спрощена. У даному випадку центр проекції, який також називають точкою зору, знаходиться на одній з осей системи координат, картинна (проекційна) площина перпендикулярна оптичній осі. Як правило, точку зору (центр проекції) розташовують на осі OZ, тоді картинна площина буде паралельна площині OXY системи координат (рис.16).
Рис. 16.
У нашому випадку точка C = (0,0, c) - центр проекції (положення спостерігача), площина z = 0 - картинна площину. Нехай точка P = (x, y, z) має проекцію P'= (x', y', 0). Розглянемо два подібних трикутника CPQ і CP'Q', і запишемо ставлення катетів: . Розглянемо два інших подібних трикутника CQ'O і CQB, і запишемо відносини катетів для них: . З іншого боку маємо: . Так як OQ'= x', BQ = x, P'Q'= y', PQ = y маємо
або після перетворень
Якщо тепер c прагне до нескінченності, то отримаємо формулу паралельної проекції: . Наступним кроком необхідно спроецированное зображення перевести в координати екрана. Це можна зробити наступним чином:
де - середина екрану, l - кількість пікселів в одиниці.
Існує зв'язок однорідних координат з операцією центральної та паралельної проекціями, яка може бути виражена так:
.
Для переходу від однорідних координат до звичайних, необхідно розділити всі компоненти точки на четверту координату: .
Для паралельної проекції матриця перетворення буде мати вигляд: .
Таким чином, крок проектування можна описати в термінах матричної операції множення. У результаті цього ми можемо об'єднати разом операції перетворення об'єкта (зсув, масштабування, обертання) і операцію проектування в одну загальну матрицю перетворення. Аналогічно можна поступити з приведенням спроектовані точок до екранних координатами:
Таким чином, всі операції перетворення об'єкта тривимірного простору на картинну площину (екран) можна описати в термінах матричних множень.
Контрольні питання:
1.Вибрати таблиці фігуру за номером варіанта:
Квадрат
1
8
15
22
Прямоктій трикутник
2
9
16
23
Рівносторонній трикутник
3
10
17
24
Ромб
4
11
18
25
Прямокутник
5
12
19
26
Трапеція
6
13
20
27
Паралелограм
7
14
21
28
2. Зобразити фігуру в декартовй системі координат.
3. Провести з фігурою наступні дії:
- зсунуті фігуру на коефіцієнт 2;
- промаштабувати фігуру крефіціентами 0,5 та 2;
- повернути фігуру на кут 30 градусів відносно осі абсцис;
- відобразити фігуру відносно х=0, у=0 та у=х.
4. Ті ж самі дії провести з фігурою в 3х вимірному просторі.