1. Введення
Виведення зображення на екран дисплея і різноманітні дії з ним, у тому числі і візуальний аналіз, вимагають від користувача достатньою геометричній грамотності. Геометричні поняття, формули і факти, пов'язані, перш за все, до плоского і тривимірному випадках, грають в задачах комп'ютерної графіки особливу роль. Геометричні міркування, підходи та ідеї в поєднанні з постійно розширюються можливостями обчислювальної техніки є невичерпним джерелом істотних зрушень на шляху розвитку комп'ютерної графіки, її ефективного використання в наукових та інших дослідженнях. Часом навіть найпростіші геометричні методики забезпечують помітні просування на окремих етапах вирішення великої графічної задачі.
Перш за все, необхідно зауважити, що особливості використання геометричних понять, формул і фактів, як простих і добре відомих, так і нових більш складних, вимагають особливого погляду на них та іншого осмислення.
Тепер необхідно розглянути графічну реалізацію 3-х мірних об'єктів, тому що вона тісно пов'язана з властивостями об'єктів. Система координат екрану, як відомо, є двовимірної, тому на екрані можлива емуляція 3-х мірної системи координат, що розташована найбільш зручно для наступних розрахунків. Надалі всі об'єкти вважаються 3-х мірними, а відображення здійснюється за допомогою набору функцій розробленої бібліотеки.
Одним із прикладів реалізації цього підходу може служити наступний. Кожен об'єкт, в простому випадку, являє собою паралелепіпед і зберігається в пам'яті розмірами по трьох осях. Також в його структуру входить набір спеціальних точок, що відповідають за з'єднання блоків у просторі. У загальному випадку, це точка прив'язки і початкова точка. В цілому, виходить гнучка графічна модель, що дозволяє змінювати розміри блоків практично миттєво. Таким чином, з'являється можливість здійснити простий графічний редактор тривимірних об'єктів. При цьому всі блоки будуть змінюватися, створюючи загальну графічну модель. Маючи справу з графічною моделлю, можна реалізувати обертання сукупності тривимірних об'єктів. Це здійснюється за допомогою набору функцій, які виробляють обертання об'єктів. Для обертання кожного об'єкту існує алгоритм, який розбиває об'єкт (у простому випадку паралелепіпед) на набір точок, кожна з яких обертається, використовуючи найпростіші перетворення в просторі шляхом множення матриці радіус-вектора на матриці перетворень в просторі. Розглянемо більш детально даний підхід з формальної сторони.
2. Афіни перетворення на площині
У комп'ютерній графіці все, що відноситься до двовимірному нагоди прийнято позначати символом (2D) (2-dimention).
Припустимо, що на площині введена прямолінійна координатна система. Тоді кожній точці М ставиться у відповідність впорядкована пара чисел (х, у) її координат (рис. 1). Запроваджуючи на площині ще одну прямолінійну систему координат, ми ставимо у відповідність тій же точці М іншу пару чисел - (x *, y *).
Формули (2.1) та (2.2) можна розглядати двояко: або зберігається точка і змінюється координатна система (рис. 2) - в цьому випадку довільна точка М залишається тією ж, змінюються лише її координати (х, у) | (х *, y *), або змінюється точка і зберігається координатна система (мал. 3) - в цьому випадку формули (2.1) та (2.2) задають відображення, що переводить довільну точку М (х, у) в точку М * (х *, у *) , координати якої визначені в тій же системі координат.
Надалі, формули (2.1) та (2.2) будуть розглядатися як правило, згідно з яким у заданій системі координат прямолінійних перетворюються точки площині.
У афінних перетвореннях площині особливу роль грають кілька вжних окремих випадків, що мають добре прослежіваемиегеометріческіе характеристики. При дослідженні геометричного сенсу числових коефіцієнт у формулах (2.1) та (2.2) для цих випадків зручно вважати, що задана система коордінатявляется прямокутної декартовій.
1. Поворот навколо початкової точки на кут?? (Рис. 4) описується формулами:
Вибір цих чотирьох окремих випадків визначається двома обставинами.
1. Кожне з наведених вище перетворень має простий і наочний геометричний зміст (геометричним змістом наділені і постійні числа, що входять у наведені формули).
2. Як відомо з курсу аналітичної геометрії, будь-яке перетворення виду (2.1) завжди можна представити як послідовне виконання (суперпозицію) найпростіших перетворень виду 1 - 4 (або частини цих перетворень).
Таким чином, справедливо наступне важлива властивість афінних перетворень площині: будь-яке відображення виду (2.1) можна описати за допомогою відображень, що задаються формулами (2.3) - (2.11).
Для ефективного використання цих відомих формул в задачах комп'ютерної графіки більш зручною є їх матрична запис. Матриці, що відповідають випадкам 1 - 3, будуються легко і мають відповідно такий вигляд:
3. Однорідні координати точки
Нехай М - довільна точка площини з координатами х і у, обчисленими щодо заданої прямолінійною координатної системи. Однорідними координатами цієї точки називається будь-яка трійка одночасно не рівних нулю чисел х1, х2, х3, пов'язаних із заданими числами х і у наступними співвідношеннями:
x1/x3 = x, x2/x3 = y (3.1)
При рішенні задач комп'ютерної графіки однорідні координати зазвичай вводяться так: довільній точці М (х, у) площини ставиться у відповідність точка МЕ (х, у, 1) у просторі.
Необхідно зауважити, що довільна точка на прямій, що сполучає початок координат, точку О (0, 0, 0), з точкою МЕ (х, у, 1), може бути задана трійкою чисел виду (hx, hy, h).
Будемо вважати, що h = 0. Вектор з координатами hx, hy, h є напрямних вектором прямої, що сполучає точки О (0, 0, 0) та МЕ (х, у, 1). Ця пряма перетинає площину z = 1 в точці (х, у, 1), яка однозначно визначає точку (х, у) координатної площини ху.
Тим самим між довільною точкою з координатами (х, у) і безліччю трійок чисел виду (hx, hy, h), h = 0, встановлюється взаємно однозначна відповідність, що дозволяє вважати числа hx, hy, h новими координатами цієї точки.
Широко використовуються в проективної геометрії однорідні координати дозволяють ефективно описувати так звані Невласні елементи (по суті, ті, якими проектна площину відрізняється від звичної евклідової площині).
У проективної геометрії для однорідних координат прийнято наступне позначення:
(тут неодмінно потрібно, щоб числа х1, х2, х3 одночасно в нуль не зверталися).
Застосування однорідних координат виявляється зручним вже при вирішенні найпростіших завдань.
Розглянемо, наприклад, питання, пов'язані зі зміною масштабу. Якщо пристрій відображення працює тільки з цілими числами (або якщо необхідно працювати тільки з цілими числами), то для довільного значення h (наприклад, h = 1) точку з однорідними координатами (0.5, 0.1, 2.5) уявити не можна. Однак при розумному виборі h можна домогтися того, щоб координати цієї точки були цілими числами. Зокрема, при h = 10 для розглянутого прикладу маємо (5, 1, 25).
Розглянемо інший випадок. Щоб результати перетворення не приводили до арифметичного переповнення у точці з координатами (80000, 40000, 1000) можна взяти, наприклад, h = 0.001. В результаті отримаємо (80, 40, 1).
Наведені приклади показують корисність використання однорідних координат при проведенні розрахунків. Однак основною метою введення однорідних координат в комп'ютерній графіці є їх безсумнівну зручність у застосуванні до геометричних перетворень.
За допомогою трійок однорідних координат і матриць третього порядку можна описати будь-який Афінний перетворення площині.
Неважко помітити, що після перемножування виразів, які стоять у правій частині останнього співвідношення, ми отримаємо формули (2.1) та (2.2) і вірне числове рівність 1 = 1. Тим самим порівнювані записи можна вважати рівносильними.
Елементи довільної матриці афінної перетворення не несуть в собі явно вираженого геометричного сенсу. Поетомучтоби реалізувати те чи інше відображення, тобто знайти елементи відповідної матриці за заданим геометричному опису, необхідні спеціальні прийоми. Зазвичай побудова цієї матриці відповідно до складності поставленого завдання і з описаними вище окремими випадками рзбівают на кілька етапів.
На кожному етапі пишеться матриця, що відповідає тому чи іншому з виділених вище випадків 1 - 4, що володіють добре вираженими геометричними властивостями.
Випішнм відповідні матриці третього порядку.
А. Матриця обертання (rotation)
Міркуючи подібним чином, тобто розбиваючи запропоноване перетворення на етапи, підтримувані матрицями [R], [D], [M], [T], можна побудувати матрицю будь-якого афінної перетворення за його геометричного опису.
4. Афінний перетворення в просторі
Розглянемо тривимірний випадок (3D) (3-dimension) і відразу введемо однорідні координати.
Потупа аналогічно тому, як це було зроблено в розмірності два, замінимо координатну трійку (x, y, z), задану точку в просторі, на четвірку чисел
(xyz1)
або, більш загально, на четвірку
(hxhyhz), h = 0.
Кожна точка простору (крім початкової точки О) може бути задана четвіркою одночасно не рівних нулю чисел; ця четвірка чисел визначена однозначно з точністю до загального множника.
Запропонований перехід до нового способу завдання точок дає можливість скористатися матричної записом і в більш складних тривимірних задачах.
Будь-яке Афінний перетворення в тривимірному просторі може бути представлено у вигляді суперпозиції обертань, розтягань, відображень та переносів. Тому цілком доречно спочатку детально описати матриці саме цих перетворень (ясно, що в даному випадку порядок матриць повинен бути дорівнює чотирьом).
А. Матриці обертання в просторі.
Матриця обертання навколо осі абсцис на кут?:
Як і в двовимірному разі, всі виписані матриці невирождени.
Наведемо важливий приклад побудови матриці складного перетворення за його геометричного опису. Приклад 3. Побудувати матрицю обертання на кут? навколо прямий L, що проходить через точку А (a, b, c) і має що направляє вектор (l, m, n). Можна вважати, що спрямовує вектор прямої є одиничним:
2 + m2 + n2 = 1
Рішення сформульованої задачі розбивається на кілька кроків. Опишемо послідовно кожен з них.
1-найменшого. Перенесення на вектор-А (-a,-b,-c) за допомогою матриці
У результаті цього преноса ми добиваємося того, щоб пряма L проходила через початок координат.
2-найменшого. Поєднання осі апплікатс прямий L двома поворотами навколо осі абсцис і осі ординат.
1-й поворот - навколо осі абсцис на кут?? (Підлягає визначенню). Щоб знайти цей кут, розглянемо ортогональну проекцію L 'вихідної прямий L на площину X = 0 (мал. 11).
5. Висновок
З огляду на вищеописані принципи, була розроблена програма моделювання синтезу металорізальних верстатів, яка наочно показує залежність компонування верстата від форми оброблюваної поверхні через код компонування, а також можливість побудови моделі верстата із стандартних вузлів для подальшої оцінки компонування. З причини того, що дана програма розроблялася як дослідження, в ній лише наочно демонструється модель верстата для обробки довільній поверхні.
Програма побудована на основі принципів об'єктно-орієнтованого програмування (ООП). Такий підхід був визнаний оптимальним для даного завдання з урахуванням того, що модель верстата будується на основі компоновочной коду. При реалізації спочатку була розглянута ланцюжок вузлів, що представляє верстат. Це призвело до труднощів і незручності реалізації відображення 3-х мірної моделі в емулювати графічному просторі. Тому була реалізована концепція, яка розглядає верстат, як "дерево" об'єктів, виходячи з того, що один з вузлів верстата, а саме станина, є нерухомим і зафіксованим жорсткою прив'язкою до системи координат. Таким чином, отримана модель являла собою об'єкт, з якого виходили два "гілки" об'єктів.
Принципи ООП дозволили створити базовий клас, з якого були отримані дочірні класи для станини і інших вузлів. Кожен об'єкт інкапсулювати свої властивості та "бачив" лише свої геометричні розміри та координати, в які він повинен бути поміщений, в результаті чого модель вийшла гнучкою.
6. Список використаної літератури.
1. Шишкін О. В., Боресков А. В. Комп'ютерна графіка.- 288 с., Іл.
2.Вайсберг А. В., Гриценко М. Е. Формування структури верстата на ранніх стадіях проектування. - Точність автоматизованих виробництв (ТАП - 97). Збірник статей міжнародної науково-технічної конференції. Пенза, 1997., С. 52 - 53.