ванной матриці Мрез в більшості випадків в декартовій системі не застосовують тому, перш ніж виконати промальовування об'єкта на картинній площині (тобто в декартовій системі координат), необхідно їх ортонормированном. Для нормировки результуючих координат об'єкту параметри останнього стовпця матриці Мрез приводяться до одиничному значенню (у разі, якщо вони не дорівнюють одиниці), для чого всі значення кожного рядка матриці діляться на скалярний множник hk даного рядка і виходить Мнорм т.е.
Масштабування
Матриця масштабування Тмасшт має вигляд:
де: a - параметр масштабування в напрямку осі X; - параметр масштабування в напрямку осі Y; - параметр загальної зміни масштабу (уздовж осей X і Y).
Якщо вони «включені», то a, e, s - будь-які позитивні речові числа. Якщо вони «вимкнені», то їх значення рівні 1.
Довільна точка A (x, y) перетворюється за допомогою матриці (10) наступним чином
Вираз (11) показує, що вихідні координати точки А - x і y змінюються в a і e разів відповідно. Цим забезпечується зміна масштабів уздовж осей X і Y. Якщо а і е більше одиниці, масштаб фігури збільшується, якщо вони менше одиниці (але більше нуля) - зменшується.
Параметр s, на який ділиться кожен елемент результуючої матриці координат при нормировке (для переходу від однорідних координат до декартовим) діє на масштаб фігури в обернено-пропорційному порядку. Якщо s більше одиниці - масштаб уздовж осей X і Y зменшується, якщо менше одиниці - збільшується.
Відображення
Матриця відображення Тотобр має вигляд
де: a - параметр відображення щодо осі Y; - параметр відображення щодо осі X; - параметр відображення відносно початку координат.
Якщо параметри відображення a, e, s «включені», то вони рівні - 1, якщо «вимкнені», то - +1.
Матриця (12) забезпечує «дзеркальне» відображення, якщо чисельні значення параметрів a, e, s - рівні - 1. Якщо параметри a, e, s відрізняються від - 1 в більшу або меншу сторону (але не більш 0) вони починають працювати одночасно і як параметри масштабування, внаслідок чого перетворений об'єкт виявляється не тільки відбитим, але і спотвореним. Таке подвійне перетворення об'єкта називається - ефект кривого дзеркала.
Поворот навколо центру координат
=x0 + (x - x0) * cos (a) - (y - y0) * sin (a);=y0 + (y - y0) * cos (a) + (x - x0 ) * sin (a);
Де х0, у0 - координати центру фігури; кут а - кут зсуву; х, у - вихідні координати зміщується точки.
Матриця обертання навколо центру є комбінація матриць переміщення опорної точки в центр.
[cos (а) -sin (а)
sin (а) cos (а)]
1.2 Вибір і обгрунтування мови програмування і середовища розробки
Для реалізації курсового проекту був обраний C ++. При вирішенні поставленого завдання оптимально використовувати для створення і перетворення графічних об'єктів мову C ++, яка є мовою високого рівня і дозволяє швидко і ефективно створювати додатки.
Для реалізації даного графічного об'єкта була обрана система програмування C ++ версії RAD Studio XE4 фірми Embarcadero Technologies, так як вона надає найбільш широкі можливості для програмування додатків ОС Windows. ++ містить засоби розробки програм контрольованої ефективності для широкого спектру завдань, від низькорівневих утиліт і драйверів до дуже складних програмних комплексів. В основі C ++ лежить мова Симула.
Переваги С ++:
Висока сумісність з мовою Сі: код на Сі може бути з мінімальними переробками скомпільовано компілятором C ++. Внешнеязиковой інтерфейс є прозорим, так що бібліотеки на Сі можуть викликатися з C ++ без додаткових витрат, і більше того - при певних обмеженнях код на С ++ може експортуватися зовні не отличимо від коду на Сі (конструкція extern C ).
Як наслідок попереднього пункту - обчислювальна продуктивність. Мова спроектований так, щоб дати програмісту максимальний контроль над усіма аспектами структури та порядку виконання програми. Один з базових принципів С ++ - «Не платиш за те, що не використовуєш» (див. Філософія C ++) - тобто жодна з мовних можливостей, що призводить до додаткових накладних витрат, не є обов'язковою для використання. Є можливість роботи з пам'яттю на низькому рівні.
Перевантаження операторів дозволяє коротко і ємко записувати вирази над користувацькими типами в природній алгебраїчній формі.
Є можливість управл...