Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

GMSAPR

.pdf
Скачиваний:
11
Добавлен:
16.03.2016
Размер:
9.01 Mб
Скачать

Федеральное агентство по образованию Государственное образовательное учреждение высшего

профессионального образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра компьютерных систем в управлении и проектировании (КСУП)

А. Ю. Поляков, С. Ю. Дорофеев

Геометрическое моделирование в системах автоматизированного проектирования

Учебно-методическое пособие

Томск – 2007

Рецензенты:

Поляков А.Ю., Дорофеев С.Ю.

Геометрическое моделирование в системах автоматизированного проектирования: учеб. пособие / Под общей редакцией С.Ю. Дорофеева. – Томск : Томск. гос. ун-т систем упр. и радиоэлектроники, 2007. – 215 с.

© Поляков А. Ю., Дорофеев С. Ю., 2007 © Том. гос. ун-т систем упр. и

радиоэлектроники, 2007

 

3

Введение.......................................................................................................................

6

1 Что такое геометрическое моделирование и системы автоматизированного

проектирования?..........................................................................................................

9

1.1

Истоки геометрического моделирования и САПР...................................

9

1.2

2D моделирование .....................................................................................

10

1.3

3D моделирование .....................................................................................

11

1.4

Заключение.................................................................................................

12

2 Обзор инструментальных средств.....................................................................

13

2.1

Особенности программирования под ОС Windows ...............................

14

 

2.1.1 Память, многозадачность и файлы, проецируемые в память........

14

 

2.1.2

64-разрядная архитектура .................................................................

18

 

2.1.3

Структура Windows-приложения.....................................................

21

2.2

Библиотека классов Microsoft Foundation Class Library.........................

26

2.3

Microsoft Visual C++ 2005 .NET ...............................................................

27

2.4

.NET Framework .........................................................................................

31

2.5

C# - новый уровень языка C++.................................................................

39

2.6

GDI и GDI+.................................................................................................

42

2.7

DirectX и OpenGL.......................................................................................

47

2.8

Заключение.................................................................................................

54

3 Основные понятия компьютерной графики.....................................................

55

3.1

Цели и задачи компьютерной графики....................................................

55

3.2

Основные понятия и определения ...........................................................

57

 

3.2.1

Графический формат .........................................................................

57

 

3.2.2

Пикселы и цвет...................................................................................

60

 

3.2.3

Цветовые модели................................................................................

62

 

3.2.4

Палитры цветов..................................................................................

64

 

3.2.5

Элементы графического файла.........................................................

64

 

3.2.6

Преобразование форматов ................................................................

65

 

3.2.7

Сжатие данных...................................................................................

66

3.3

Заключение.................................................................................................

69

4

 

 

4 Работа с растровыми файлами формата BMP ..................................................

70

4.1

Общее описание формата BMP ................................................................

70

4.2

Структура BMP-файла...............................................................................

71

4.3

Создание многодокументного приложения............................................

77

4.4

Класс CRaster для работы с растровыми изображениями.....................

79

4.5Модификация класса документа для обеспечения работы с

 

изображениями...........................................................................................

92

4.6

Заключение.................................................................................................

94

5 Двойная буферизация и вывод изображения...................................................

96

5.1

Реализация виртуального экрана в программе BMViewer....................

96

5.2

Модификация класса облика....................................................................

98

5.3

Заключение...............................................................................................

107

6 Редактирование изображений..........................................................................

108

6.1

Преобразования........................................................................................

108

6.2

Таблица преобразования.........................................................................

110

6.3

Гистограмма яркости изображения .......................................................

111

6.4

Графические фильтры.............................................................................

119

 

6.4.1 Программная схема выполнения преобразований. ......................

119

 

6.4.2 Класс «Фильтр»................................................................................

127

6.5Использование гистограммы яркости для повышения контрастности

 

изображения. Фильтр «Гистограмма» ...................................................

133

6.6

Фильтр «Яркость/Контраст»...................................................................

140

6.7

Фильтр «Инверсия цветов».....................................................................

147

6.8

Фильтр «Рельеф» .....................................................................................

148

6.9

Фильтр «Размытие» .................................................................................

151

6.10

Фильтр «Контур» .....................................................................................

152

6.11

Фильтр «Четкость» ..................................................................................

154

Результат применения фильтра показан на рис. 23. ............................................

156

6.12

Фильтр «Удаление шума».......................................................................

157

6.13

Применение фильтров.............................................................................

168

 

 

 

5

6.14

Вывод изображений на печать ...............................................................

169

6.15

Заключение...............................................................................................

172

7 Создание приложения с использованием библиотек OpenGL .....................

174

7.1

Общая схема использования библиотеки OpenGL...............................

174

7.2

Модификация класса облика..................................................................

176

7.2.1

Модификация класса документа....................................................

185

7.2.2

Модификация класса приложения.................................................

185

7.3

Заключение...............................................................................................

186

Приложение 1. Основные понятия и принципы объектно-ориентированного

 

программирования ..................................................................................................

187

Приложение 2. Основные рекомендации по проектированию пользовательских

интерфейсов.............................................................................................................

193

8 Методические указания к выполнениию лабораторных работ....................

196

8.1Задание на лабораторную работу №1 — Изучение программы

BMViewer..................................................................................................

196

8.2Задание на лабораторную работу №2 — простейшие растровые

преобразования ........................................................................................

197

8.3 Задание на лабораторную работу №3 —преобразования №2.............

198

8.4Задание на лабораторную работу №4 — работа с OpenGL в программе

 

FirstGL.......................................................................................................

199

9 Курсовое проектирование................................................................................

201

9.1

Темы курсовых работ..............................................................................

201

9.2

Условия выполнения курсового проекта ..............................................

203

 

9.2.1 Требования к техническому заданию............................................

204

 

9.2.2

Проект системы................................................................................

204

 

9.2.3

Диаграммы классов..........................................................................

205

 

9.2.4

Пояснительная записка....................................................................

208

Литература ...............................................................................................................

 

212

6

Введение

Задачи дисциплины: изучение методов геометрического моделирования в системах автоматизированного проектирования (САПР): отображение графической информации в двумерном и трехмерном пространстве, программирование алгоритмов компьютерной графики, создание простейших САПР-систем.

В данном пособии изложены алгоритмы и методы решения многих задач, возникающих при работе с векторными и растровыми изображениями. Основное внимание уделено вопросам прикладного программирования с использованием языка Microsoft Visual C++ 2005, библиотеки классов MFC и объектно-ориентированного проектирования. Материал книги накоплен за несколько лет чтения курса лекций "Геометрическое моделирование в САПР" в Томском государственном университете систем управления и радиоэлектроники (ТУСУР), а также в результате практической работы над научными и коммерческими проектами.

Материал строится на программе предыдущих курсов, поэтому перед началом изучения данной дисциплины необходимо уверенно владеть следующими навыками:

Знать базовые алгоритмы компьютерной графики, способы хранения и представления графической информации;

Знать основы написания программного обеспечения (ПО) под операционную систему (ОС) Windows;

Уметь работать в средах Microsoft Visual Environment или Borland.

Иметь хорошее понимание C++;

Знать объектно-ориентированное проектирование (ООП) программных систем (полиморфизм, множественное наследование, агрегация и др.), их описание в диаграммах UML;

Знать технологии разработки программного обеспечения (составление технического задания, проектов систем, различные стандарты организации процесса разработки — IBM COOTS, MSF,

7

критерии оценки качества ПО — ISO/IEC 9126, ГОСТ 28195 и ГОСТ Р ИСО/МЭК 9126 и др.).

Если в этих областях будут возникать вопросы, совершенно необходимо своевременно устранить пробелы.

Структура книги разделена на две части: обзорная и прикладная.

В обзорной части книги вкратце рассматриваются особенности программирования под ОС Windows: win32, win64, .NET, GDI и GDI+, DirectX

и OpenGL, и другое.

Перед изучением дальнейшего материала необходимо ознакомиться с приложениями — в них описаны базовые принципы, которыми необходимо будет владеть, чтобы эффективно усвоить материал.

Перед авторами не стояла задача полностью рассмотреть предметные области, описанные в приложениях, они скорее необходимы для того, чтобы студент смог освежить в памяти темы, пройденные на младших курсах. Дополнительные сведения могут быть легко получены из электронных источников или специальной литературы.

Вприкладной части книги описывается представление растровых данных

иструктура BMP-файла. Рассматривается пример создания программы BMViewer, обрабатывающей растровые данные различными алгоритмами компьютерной графики. Описывается процесс создания программы, в том

числе: многодокументная архитектура на основе классов MFC, двойная буферизация с помощью виртуальных экранов, гистограмма яркости, графические фильтры, работа с потоками, полиморфизм, точечные и матричные (пространственные) фильтры, яркость, контраст и многое другое.

Завершающая глава посвящена разработке приложения с использованием библиотеки OpenGL.

Данная книга не претендует на полноту изложения и для успешного изучения дисциплины обязательно потребуются привлечение дополнительных

8

источников. Рекомендуемые источники: MSDN (Microsoft Developer Network) –

поистине гигантская энциклопедия по технологиям .NET, MFC, API, GDI и GDI+, а так же многому другому; информационный портал RSDN (Russian Software Developer Network) www.rsdn.ru на котором можно обнаружить практически любую информацию (да ещё и на русском языке). Кроме того,

достаточно полезными бывают www.codeguru.com и www.codeproject.com (оба англоязычные).

Вообще, в наш информационный век найти любой материал в Интернете не является большой проблемой. Поэтому не стоит ограничиваться только перечисленными источниками — каждый день появляются новые достойные Интернет-ресурсы и бумажные публикации.

9

1Что такое геометрическое моделирование и системы автоматизированного проектирования?

Вданной главе мы рассмотрим — как зарождались САПР-системы и для чего они предназначены. Узнаем классификацию и математический аппарат геометрического моделирования.

1.1 Истоки геометрического моделирования и САПР

Теоретические основы САПР сформировались в 60-х — начале 70-х годов прошлого столетия. В основу идеологии положены разнообразные математические модели абстрактного изделия. Объекты рассматриваются с точки зрения различных специальностей, применяются различные методы получения параметров: геометрические, технологические, тепловые, аэродинамические, эргономические и т.п. Именно разнообразие моделей привело впоследствии к классификации CAD/CAM/CAE/PDM/TDM... и к более глубокой специализации внутри каждого раздела.

Нас, при изучении данной дисциплины, интересует именно CAD — Computer-Aided Design (русскоязычный термин — САПР — системы автоматизированного проектирования), который определяет область геометрического моделирования. Важность геометрической модели трудно переоценить, поскольку любые предметы описываются в первую очередь геометрическими параметрами.

Первой основой для описания предметов можно считать Евклидову геометрию, допускающую однозначное представление материальных объектов на плоскости. Евклидово построение предполагает определенный набор инструментов (линейка, циркуль) и множество допустимых операций, которые можно выполнить с их помощью. Дальнейшее развитие идей Евклидовых построений сформировало методы начертательной геометрии и проекционного черчения. Введение систем координат Декартом позволило соединить

10

геометрию с аналитической математикой. Так, открылась возможность получать новые геометрические объекты путем решения алгебраических уравнений.

1.2 2D моделирование

Традиционный способ плоского геометрического моделирования состоял в применении линейки, циркуля и транспортира на чертежной доске. Именно этот способ обеспечил техническую революцию на рубеже XIX-XX веков.

Появление ЭВМ стало благоприятной предпосылкой для развития машинной графики, которая включила в себя дисциплины геометрического моделирования и вычислительной геометрии. Основная их задача состоит в решении геометрических задач в аналитической и вычислительной (алгоритмической) форме.

Параллельно с векторным описанием геометрической информации развивались и дискретные представления объектов, так же называемых растрами. Отсюда пришло понятие «растровая графика».

К началу 80-х математический аппарат плоского геометрического моделирования был уже достаточно хорошо сформирован для того, чтобы обеспечить бурное развитие плоских CAD-систем. Инженеры сразу же оценили такие преимущества, как автоматизация построения геометрических элементов, копирование фрагментов, простота редактирования геометрической и текстовой информации, автоматическая штриховка и нанесение размеров, точность и качество документации, в том числе её автоматическое формирование, компактность хранения и др.

Существует два подхода к плоскому моделированию, которые получили развитие в CAD-системах. Первый условно можно назвать чертежным, второй

твердотельным.

Вчертежном способе основными инструментами являются отрезки, дуги, полилинии и кривые. В твердотельном способе основными инструментами являются замкнутые контуры; остальные элементы играют вспомогательную

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]