Разработка системы графического моделирования для решения прикладных задач компьютерной графики
Одной из наиболее значимых работ, проделанных мною за время обучения, является разработка функциональной библиотеки для работы с пространственными кривыми и поверхностями при моделировании трехмерных объектов и создание на ее основе интерактивного графического редактора. Данная работа была начата в рамках индивидуального задания по курсу «Графическое и геометрическое моделирование и интерактивные системы» и была продолжена мною на последующих курсах. Приложения, использующие разработанную программную библиотеку, получили высокие отзывы и оценки на Международной студенческой научно-технической конференции «Графика XXI века» в Севастополе, прошедшей 4-8 октября 2010 года, а также на международной студенческой олимпиаде 2010-2011 учебного года по системам автоматизированного проектирования и компьютерного моделирования в машиностроении, проведенной на базе Хмельницкого национального университета.
Дизайнерская и инженерная деятельность в современных условиях тесно связана с использованием персональных электронных вычислительных машин. На сегодняшний день для того чтобы быть эффективным конструктором или дизайнером, необходимо иметь инструменты, позволяющие быстро разрабатывать проекты, взаимодействовать с различными подразделениями, вовлеченными в процесс разработки, передавать созданные модели на другие производственные этапы. Начиная от эскиза, рисунка, физической модели, сканированных данных, или одной лишь идеи – перед разработчиком всегда стоит необходимость иметь системы для точного моделирования и документирования проекта, визуализации, анимации и анализа проектируемых моделей. Современный рынок программного обеспечения предоставляет широкий выбор средств автоматизированного моделирования и проектирования, в их числе, как универсальные пакеты, представленные такими брендами, как Autodesk 3ds Max, Maya, для графического моделирования, и AutoCAD, SolidWorks, для инженерной деятельности, так и узко специализированные программные системы.
Существующие профессиональные среды моделирования предоставляют обширную функциональность и поддержку своим клиентам, но по своей природе являются закрытым коммерческим программным обеспечением. В силу этого невозможно использовать, модифицировать их исходный код или узнать подробности реализации программной архитектуры этих систем.
Разработаная интерактивная графическая системя, позволяет создавать и редактировать комплексные геометрические объекты. Составные элементы данной системы могут быть в дальнейшем использованы как в учебном процессе, так и при решении прикладных задач компьютерной графики, разработки специализированного программного обеспечения.
На рисунке 1 приведен интерфейс главного окна приложения, который включает в себя: окно проекций (горизонтальная, фронтальная, профильная и пользовательская плоскости проекций), панель создания и редактирования объектов (справа от окна проекций), панель инструментов, меню.
В разработанной библиотеке реализованы методы работы со следующими видами пространственных кривых и поверхностей: кубические сплайны, поверхности Кунса, а также В-сплайны, кривые и поверхности Безье, NURBS.
Система обеспечивает гибкость моделирования благодаря широкому набору возможностей рабочей среды.
Базовая функционалность системы включает в себя:
- развитый инструментарий трёхмерного моделирования;
- возможности построения различных типов поверхностей и кривых произвольной формы;
- интерактивное редактирование опорных точек, касательных векторов;
- изменение специфических параметров объекта: порядка, весовых коэффициентов, компонентов узловых векторов;
- применение стандартных преобразований, таких как масштабирование, перенос, поворот, как к отдельному объекту или группе объектов, так и к набору контрольных вершин выбранного объекта;
- поддержка нескольких режимов визуализации: затенение по Гуро, плоское затенение и каркасная сетка.
Система позволяет работать как с базовыми примитивами, так и с комплексными геометрическими моделями образованными на их основе. На рисунке 3 приведен пример линейчатых поверхностей, у которых в качестве направляющих используются базовые кривые.
Базовая функциональность приложения легко расширяется за счёт различных модулей, возможности разработанной библиотеки нашли практическое применение при решении задач генерации, визуализации и анализа поверхности ландшафта (рис. 4), расчета линий равного уровня, восстановления трехмерной геометрии объекта на основе существующих двумерных графических файлов.
Программная реализация графического редактора
Разработанная система моделирования, написана на языке Visual С++ в интегрированной среде разработки Microsoft Visual C++ 2008 с использованием компонентов программной технологии .NET Framework 3.5 и графической библиотеки OpenGL.
Язык программирования Visual С++ был выбран исходя из того, что он является, с одной стороны, языком высокого уровня с широким набором развитых синтаксических конструкций, поддерживающим объектно-ориентированный подход к программированию, а, с другой стороны, имеет достаточно низкоуровневых средств, подходящих для системного программирования. Платформа .NET Framework — это один из компонентов системы Windows. Она позволяет создавать и использовать приложения нового поколения, используя широкие возможности библиотеки классов .NET Framework.
Выводы
Разработанный графический редактор может быть в дальнейшем использован в образовательных целях на курсе «Графическое и геометрическое моделирование и интерактивные системы» в качестве демонстрации примера моделирования трехмерных объектов. Программная библиотека, предоставляющая функциональность для работы с кривыми и поверхностями, может быть использована для решения прикладных задач в компьютерной графики и начертательной геометрии, построения специализированного программного обеспечения в области компьютерного моделирования и дизайна.
Рекомендуемая литература
1. Piegl L.,Tiller W. «The NURBS Book. 2nd Edition» – Springer, 1997. – 646 p.
2. Farin G. «Curves and surfaces for CAGD. A practical guide» – Morgan-Kaufmann, 2002. – 499 p.
3. Роджерс Д., Адамс Дж. «Математические основы машинной графики» – М.:Мир, 2001. – 606 с.