-->

Кодак Катерина Олександрівна

Факультет: Комп'ютерних наук і технологій
Спеціальність: Програмне забезпечення автоматизованих систем
Тема випускної роботи магістра: Дослідження засобів прискореної розробки систем геометричного моделювання
Науковий керівник: к.т.н., доцент Карабчевский Віталий Владиславович

Автореферат по темі випускної роботи

«Дослідження засобів прискореної розробки систем геометричного моделювання» 

Введення

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

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

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

Робота базується на випускній роботі Хлепітько І.В. на тему «Дослідження засобів розробки систем геометричного моделювання». Створена в рамках цієї роботи, графічна бібліотека для роботи з базовими геометричними об'єктами: лінія, коло і еліпс, була розширена за рахунок додавання операцій побудови 3d-моделі на базі проекції кривої довільного вигляду.

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

Актуальність теми

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

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

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

Мета і завдання роботи

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

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

Новизна роботи

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

Аналіз досліджень і публікацій

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

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

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

Ідея створення системи геометричного моделювання, що підтримує відповідність між плоским і просторовим зображенням фігур, була запропонована в [6] у якості навчальної системи, що дозволяє студентам виконувати побудови на комплексному кресленні і одночасно переглядати результати побудови у 3d сцені. В якості реалізації цієї ідеї було запропоновано систему Spin [7], з базовим набором двомірних елементів і перетворенням проекцій відрізка в його тривимірне зображення.

Подібна система була також запропонована у [8]. Система ProGeTeach дозволяє в інтерактивному режимі виконувати побудови на епюрі Монжа і на його основі створювати 3d модель. З точки зору примітивів, які використовуються при побудові, можливості системи обмежені, тут присутні тільки відрізки прямих ліній і крапки.

На відміну від ProGeTeah, система Spin має більш широкий вибір примітивів, дозволяє будувати двовимірні криві, такі як еліпс та коло. Крім того в Spin реалізована можливість прив'язки побудов до вже наявних об'єктів креслення, таким як перетин ліній, середина відрізка, кінцеві точки ліній і т.і. Spin вельми дружня для користувача і інтуїтивно зрозуміла навіть для новачка.

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

Подальша розробка системи Spin, дозволить розширити коло завдач, які можно в ній вирішувати.

Основна частина

Система Spin була вдосконалена за рахунок розширення можливостей класів Line, Ellipse і Cycle, що дозволяють створювати і редагувати об'єкти в інтерактивному режимі. Також було допрацьовано функцію Make3d, яка забезпечує зв'язок двомірного злбраження з тривимірною моделлю. Реалізовано класи Cone і Cylinder.

Побудова еліпса

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

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

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


Рисунок 1 — Приведення проекцій до відповідності

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

Для суміщення проекцій вибирається «головна», під яку буде перетворена друга. У випадку двох еліпсів, досить поєднати їх центри по координаті X та змінити довжини півосей так, щоб їх проекції на вісь Х були рівні. Алгоритм представлено на рисунку 2.


Рисунок 2 — Алгоритм суміщення проекцій еліпса

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

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

x  =  a cos(α) cos(t) - b  sin(α) sin(t)
y  =  a sin(α) cos(t) + b  cos(α) sin(t)

максимальне значення Х для такого эліпса:

Звідси знайдемо довжину відрізка і координати його кінців при заданому куті нахилу до осі абсцис.

Рішення основної задачі — побудови 3d-моделі еліпса зводиться до знаходження натуральної величини осей еліпса, побудови еліпса на початку координат, перенесення і повороту.

Побудова поверхонь обертання

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

Геометричними визначниками конуса є його основа і вершина. У системі реалізовано можливість побудови конуса шляхом виділення проекцій його визначників на кресленні. У 3d-сцені конус описується каркасною моделлю, де відображається крива основи і чотири утворюючі бічнрї поверхні.

На рисунку 3 показано вирішення задачі знаходження перерізу конуса.

Наочності рішення сприяє опціональний режим відображення проекцій конуса на площину проецювання.


Рисунок 3 — Знаходження перерізу конуса
(анімація — розмір: 560 x 480 px; об'єм: 49.1 kb; кадрів: 12; затримка між кадрами: 1с; кількість циклів: 1)

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


Рисунок 4 — Знаходження перерізання циліндра

Побудова кривих довільного вигляду

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

Кожна точка сплайну описується функцією:

де (L+1) — кількість контрольних точок, Рk = (xk, yk) — координати контрольних точок, Nk,m(t) — базисна функція сплайну, m — порядок базисних функцій. Для визначення базисних функцій використовуються рекурсивні формули Кокса - Де Бура [9]


де tk — елемент вузлового вектора, що визначається за формулою

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


Рисунок 5 — Побудова проекцій сплайну

Висновки

Розроблена бібліотека може бути використана як основа для навчальних систем дисциплін пов'язаних з нарисної геометрією і комп'ютерною графікою.

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

Перелік літератури

  1. Карабчевський В.В. Засоби зв’язку між операціями над двовимірними і тривимірними моделями. // Наукові праці Донецького національного технічного університету. Серія Інформатика, кібернетика та обчислювальна техніка, випуск 93. — Донецьк: ДонНТУ. — 2005. — c. 41-46. [⇑]
  2. Дерябин Н.Б., Денисов Е.Ю. Объектно-ориентированная инфраструктура систем компьютерной графики. // Материалы 11-го научно-практического семинара «Новые информационные технологии в автоматизированных системах » — М.:МГИЭМ. — 2008. — с. 10-15.[⇑]
  3. Вельтмандер П.В. Учебное пособие «Архитектуры графических систем»  - (Учебное пособие в 3-х книгах) Книга 3 — Новосибирский государственный университет. — 1997. — http://cylib.iit.nau.edu.ua/Books/Graph/Study/3d-course/kg01.htm [⇑]
  4. Муниципальная ГИС для российских условий: недорогие масштабируемые решения на стандартном ядре // Журнал «САПР и графика» — [электронный ресурс]: http://www.sapr.ru/Article.aspx?id=7218  [⇑]
  5. Особенности внедрения на предприятиях и методы интеграции CAD/CAM/PDM/FRP/MRP/MES/PLM- и ERP-систем // Журнал «САПР и графика» — [электронный ресурс]: http://www.sapr.ru/Article.aspx?id=18851 [⇑]
  6. Карабчевский В.В. Компьютерные технологии в преподавании графических дисциплин для специальности «Программное обеспечение» // Труды международной научно-практической конференции «Эффективность инженерного образования в XXI веке». — Донецьк: ДонНТУ. — 2001. — c. 260-267.  [⇑]
  7. Карабчевський В.В., Хлепітько І.В. Засоби розробки систем геометричного моделювання // Наукові нотатки. Міжвузівський збірник (за напрямом «Інженерна механіка»). Випуск 22. Частина 1. «Сучасні проблеми геометричного моделювання» (квітень, 2008). — Луцьк. — 2008. — c.133-137.  [⇑]
  8. Бурчак І.Н., Величко В.Л. Програма супроводу дисципліни «Нарисна геометрія» для використання в системі дистанційного навчання // Наукові нотатки. Міжвузівський збірник (за напрямом «Інженерна механіка»). Випуск 22. Частина 1. «Сучасні проблеми геометричного моделювання» (квітень, 2008). — Луцьк. — 2008. — С. 45-50.  [⇑]
  9. Роджерс Д., Адамс Дж. Математические основы машинной графики: Пер. с агл. — М.:Мир. — 2001. — с.310-340. [⇑]
  10. Голованов Н.Н. Геометрическое моделирование. — М.: Издательство Физико-математической литературы. — 2002. — c.105-121.

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

© Магістр ДонНТУ Кодак К.О., 2010