Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Лабораторный практикум по курсу "Геометрическое моделирование и машинная графика"

Покупка
Основная коллекция
Артикул: 619536.01.99
Рассмотрены вопросы представления и преобразований графической информации в ЭВМ, решения практических задач при работе с графикой, характерных для легкой промышленности. Предназначены для студентов специальностей 260901, 260902, 260905, 260906, 080401, по направлению 260800
Разин, И. Б. Геометрическое моделирование и машинная графика [Электронный ресурс] : Лабораторный практикум по курсу / И. Б. Разин. - Москва : ИИЦ МГУДТ, 2009. - 100 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/464849 (дата обращения: 29.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ 

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ 

ДИЗАЙНА И ТЕХНОЛОГИИ 

кафедра Информационные технологии 

Разин И.Б., Семенов А.А., Пылова А.С. 

   Лабораторный практикум по курсу 

 «Геометрическое моделирование и  

машинная графика» 

 для студентов специальностей 260901, 260902, 260905, 260906, 

080401, по направлению 260800 

Утверждено в качестве методического пособия 
Редакционно-издательским советом  МГУДТ 

Москва 
МГУДТ  

2009 

УДК 004.9 

Р 17 

Куратор РИС  
 
 
                              доц. к.т.н.  Зайцев Н.А. 

 
 
 
декан механического факультета  

Работа рассмотрена на заседании кафедры и рекомендована к печати. 

Зав. каф. 
Информационные технологии                               доц. к.т.н. Разин И.Б. 

Автор  
 
 
 
    
 
             доц., к.т.н. Разин И.Б. 
       доц., к.т.н. Семенов А.А. 

 
 
 
 
 
 
 
                 ст. пр. Пылова А.С. 

Рецензент   
 
 
 
 
      проф. к.т.н. Росляков Г.В. 

Р 17    Разин И.Б. Лабораторный практикум по курсу 
 «Геометрическое моделирование и машинная графика» / Разин И.Б. – 
М.: ИИЦ  МГУДТ,  2009 – 100 стр. 

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

260905, 260906, 080401, по направлению 260800 

УДК 004.9 

 Московский Государственный Университет 

дизайна и технологии, 2009 

С О Д Е Р Ж А Н И Е 

 Введение…………………………………………………………………6 
  
Типы графических устройств…………………………… ………6

     
Графические дисплеи на запоминающей трубке……………….7 

          Векторные графические дисплеи с регенерацией  
           изображения……………………………………………………….8 
           Растровые графические дисплеи с регенерацией  
           изображения….……………………………………………………8 
          Цвет………………………………………………………………..10 
          Visual Basic………………………………………………………..12 
           Расположение основных  окон в Visual Basic…………………..13 
           Элементы  TOOLBOX……………………………………………14 
           Программирование графики: пиксел, цвет, система  
           координат…………………………………………………………21 
           Примеры основных процедур, которые используются в  
           лабораторных работах……………………………………………24 
           Принципы выполнения лабораторных работ…………………..25 

Лабораторная   работа   №   1:   "Составление простейшей программы 
 на   языке   Visual   Basic   с   рисованием   основных   геометрических  
фигур"……………………………………………………………………26 

Основные  операторы…………………………………………….26 
Лабораторные основы……………………………………………28 

 Лабораторная работа № 2: " Работа с мышью "………………………29 
          Математические основы………………………………………….29 
           ЧАСТЬ I "Установка основных параметров для рисования"….29 
           ЧАСТЬ II "Основные события мыши"………………………….30 
           ЧАСТЬ III "Создание кисти"…………………………………...30 

 Лабораторные основы……………………………………………31 

Лабораторная работа № 3: "Простейший алгоритм построения отрезка 
и окружности. Алгоритм Брезенхема для построения отрезка и 
окружности "……………………………………………………………..35 

Математические основы………………………………………….35 
Простейший алгоритм построения отрезка……………………..36 
Алгоритм Брезенхема для построения отрезка…………………37 
Некоторые дополнительные вопросы построения отрезка…….39 
Порядок конечных точек…………………………………………39 
Построение отрезка в случае отсечения (клипирования)………39 
Растровые алгоритмы построения окружности………………...40 
Лабораторные основы…………………………………………….42 

Лабораторная работа № 4: "Построение кривых в форме Безье. 
Построение кривых в форме Фергюсона (Эрмита)"……………….…43 

Математические основы…………………………………………43 
Представление контуров в машинной графике………………...44 
Кривые Безье…………………………………………………….45 
Свойства кривой Безье……………………………………………45 
Кривые Фергюсона……………………………………………….47 
Лабораторные основы…………………………………………….48 

Лабораторная работа № 5: "Вычисление площади и периметра  
произвольного многоугольника"……………………………………….49 

Математические основы………………………………………….49 
Метод трапеций для  расчета площади многоугольника,  пред- 

          ставленного кусочно-линейным описанием…………………….50 

Лабораторные основы…………………………………………….50 

Лабораторная работа № 6: "Геометрические преобразования.  
Сдвиг, масштабирование, поворот, симметрия"………………………51 

Математические основы…………………………………………51 
Преобразование точек……………………………………………51 
Преобразование параллельных линий…………………………..55 
Преобразование пересекающихся прямых……………………..56 
Поворот……………………………………………………………59 
Отражение ………………………………………………………..62 
Масштабирование………………………………………………..64 
Перемещения и однородные координаты………………………66 
Пространственные преобразования…………………………….67 
Лабораторные основы……………………………………………68 
Двумерные преобразования на плоскости. Сдвиг……………..69 
Масштабирование………………………………………………..69 
Поворот……………………………………………………………69 
Однородные координаты…………………………………………70 
Суперпозиция……………………………………………………..72 
Матрицы преобразований на плоскости. Общий вид………….73 
Матрицы преобразований в пространстве. Общий вид……….74 

Лабораторная работа № 7: "Аппроксимация. Mетод наименьших 
квадратов. Интерполяция. Метод Лагранжа."…………………………75 

Математические основы…………………………………………75 
Интерполяция……………………………………………………..76 
Аппроксимация…………………………………………………...79 
Лабораторные основы……………………………………………80 
Метод наименьших квадратов…………………………………..81 
Интерполяционный многочлен Лагранжа………………………84 

Лабораторная работа № 8: "Закраска произвольных областей"……..85 

Математические основы…………………………………………85 
Простой алгоритм заполнения с затравкой…………………….85 
Простой алгоритм заполнения с затравкой и стеком………….86 
Построчный алгоритм заполнения с затравкой………………...88 
Лабораторные основы……………………………………………94 
Словарь основных терминов среды Visual Basic……………….95 

Список использованной литературы………………………………….99 

Введение 

Компьютерная графика - сложная и разнообразная дисциплина. 

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

следовательно, мы должны рассмотреть:  


как изображения представляются в машинной графике;  


как изображения готовятся для визуализации;  


как предварительно подготовленные изображения рисуются;  


как осуществляется взаимодействие с изображением.  

Хотя во многих алгоритмах в качестве геометрических данных, 

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

Типы графических устройств

Существует 
много 
разнообразных 
устройств 
для 
вывода 

изображений, построенных с помощью машинной графики. В качестве 
типичных примеров можно назвать перьевые графопостроители, 
точечно-матричные, электростатические и лазерные печатающие 
устройства, фильмирующие устройства, дисплеи на запоминающей 
трубке, векторные дисплеи с регенерацией изображения и растровые 
дисплеи 
на 
электронно-лучевой 
трубке 
(ЭЛТ). 
Ограничимся 

обсуждением дисплеев на ЭЛТ, поскольку в большинстве систем 
машинной графики используются дисплеи подобного типа и именно в 
этом типе дисплеев воплощены наиболее фундаментальные концепции 
вывода изображения.  

Существует 3 основных типа дисплеев на базе ЭЛТ:  

1. запоминающие ЭЛТ с прямым копированием изображения 

(рисование отрезками);  

2. векторные дисплеи с регенерацией изображения (рисование 

отрезками);  

3. растровые сканирующие дисплеи с регенерацией (поточечное 

рисование).  

Развитие электронной техники позволило использовать в одном 
дисплее несколько методов изображения.  

Графические дисплеи на запоминающей трубке. 

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

Дисплей 
на 
запоминающей 
трубке 
способен 
изображать 

фактически 
неограниченное 
количество 
векторов, 
а 
мерцание 

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

Векторные графические дисплеи с регенерацией изображения. 

          В противоположность дисплею на запоминающей трубке в 
векторном (рисующем отрезки или векторы) дисплее с регенерацией 
изображения на базе ЭЛТ используется люминофор с очень коротким 
временем послесвечения. Из-за того что время послесвечения 
люминофора мало, изображение на ЭЛТ за секунду должно 
многократно перерисовываться или регенерироваться.  

Для векторного дисплея с регенерацией требуется кроме ЭЛТ 

еще два элемента: дисплейный буфер и дисплейный контроллер. 
Дисплейный буфер - это непрерывный участок памяти, содержащий 
всю информацию, необходимую для вывода изображения на ЭЛТ. 
Функция дисплейного контроллера заключается в том, чтобы 
циклически обрабатывать эту информацию со скоростью регенерации. 

Растровые графические дисплеи с регенерацией изображения.

          Как дисплеи на запоминающих ЭЛТ, так и дисплеи с 
произвольным сканированием являются устройствами рисования 
отрезков, т. е. отрезок прямой может быть нарисован непосредственно
из любой адресуемой точки в любую другую. Графическое устройство 
на растровой ЭЛТ работает по-другому. Растровое устройство можно 
рассматривать как матрицу дискретных ячеек (точек), каждая из 
которых может быть подсвечена. Таким образом, оно является 
точечно-рисующим 
устройством. 
Невозможно, 
за 
исключением 

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

последовательностями точек (пикселов), близко лежащих к реальной 
траектории отрезка.  

Чаще всего для графических устройств с растровой ЭЛТ 

используется буфер кадра. Буфер кадра представляет собой большой 
непрерывный участок памяти компьютера. Для каждой точки, или 
пиксела, в растре отводится как минимум один бит памяти. Эта память 
называется битовой плоскостью. Для квадратного растра размером 
512x512 требуется 218, или 262144 бита памяти в одной битовой 

плоскости. Изображение в буфере кадра строится побитно. Из-за того 
что бит памяти имеет только два состояния (двоичное 0 или 1), имея 
одну битовую плоскость, можно получить лишь черно-белое 
изображение. Битовая плоскость является цифровым устройством, 
тогда как растровая ЭЛТ - аналоговое устройство, для работы которого 
требуется электрическое напряжение. Поэтому при считывании 
информации из буфера кадра и ее выводе на графическое устройство с 
растровой ЭЛТ должно происходить преобразование из цифрового 
представления в аналоговый сигнал. Такое преобразование выполняет 
цифро-аналоговый преобразователь (ЦАП). Каждый пиксел буфера 
кадра должен быть считан и преобразован, прежде чем он будет 
отображен на растровой ЭЛТ. Цвета или полутона серого цвета могут 
быть введены в буфер кадра путем использования дополнительных 
битовых плоскостей. Интенсивность каждого пиксела на ЭЛТ 
управляется содержимым соответствующих пикселов в каждой из N 
битовых 
плоскостей. 
В 
соответствующую 
позицию 
регистра 

загружается бинарная величина (0 или 1) из каждой плоскости. 
Двоичное число, получившееся в результате, интерпретируется как 
уровень интенсивности между 0 и 2N-1. С помощью ЦАП это число 
преобразуется в напряжение между 0 (темный экран) и 2N-1 
(максимальная интенсивность свечения). Всего можно получить 2N

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

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

комбинируясь 
на 
ЭЛТ, 
дают 
восемь 
цветов. 
Эти 
цвета 
и 

соответствующие им двоичные коды приведены в табл. 1.1. Схема 
простого цветового растрового буфера кадра показана на рис. 1.1.  

 
Красный Зеленый Синий

Черный 
0 
0 
0 

Красный 
1 
0 
0 

Зеленый 
0 
1 
0 

Синий 
0 
0 
1 

Желтый 
1 
1 
0 

Голубой 
0 
1 
1 

Пурпурный 1 
0 
1 

Белый 
1 
1 
1 

Таблица 1.1. Цветовые комбинации для простого буфера кадра с тремя 

битовыми плоскостями.  

Цвет

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

цветовым тоном, насыщенностью и светлотой. Цветовой тон 
позволяет различать цвета, а насыщенность - определять степень 
ослабления (разбавления) данного цвета белым цветом. У чистого 
цвета она равна 100% и уменьшается по мере добавления белого. 
Насыщенность ахроматического цвета составляет 0%, а его светлота 
равна интенсивности этого света.  

Психофизическими 
эквивалентами 
цветового 
тона, 

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

середине видимого спектра, т. е. зеленый цвет; второй - длины волн у 
верхнего края видимого спектра, т. е. красный цвет; третий - короткие 
волны 
нижней 
части 
спектра, 
т.е. 
синий. 
Относительная 

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

В машинной графике применяются две системы смешения 

основных цветов: аддитивная - красный, зеленый, синий (RGB) и 
субстрактивная - голубой, пурпурный, желтый (CMY). Они 
изображены 
на 
рис. 
5.1. 
Цвета 
одной 
системы 
являются 

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

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

Для отражающих поверхностей, например типографских красок, 

пленок и несветящихся экранов применяется субтрактивная система 

CMY. В субтрактивных системах из спектра белого цвета вычитаются 

длины волны дополнительного цвета. Например, при отражении или 

пропускании света сквозь пурпурный объект поглощается зеленая 

часть спектра. Если получившийся свет отражается или преломляется 

в желтом объекте, то поглощается синяя часть спектра и остается 

только красный цвет. После его отражения или преломления в 

голубом объекте цвет становится черным, так как при этом 

исключается весь видимый спектр. По такому принципу работают 

фотофильтры.  

Аддитивная цветовая система RGB удобна для светящихся 

поверхностей, например экранов ЭЛТ или цветных ламп. 

Visual Basic 

 
Лабораторные 
работы 
по 
курсу 
ГММГ 
предполагается 

выполнять на компьютере в среде программирования MS Visual Basic. 

Это наиболее простая для понимания среда программирования, 

обеспечивающая вместе с тем неплохие возможности. 

Расположение основных  окон в Visual Basic 

    Панель  элементов управления 

                        Окно  Формы 
                                                    Окно Кода                 Окно Проводника  
Проекта 
                                                                                                             Окно 
свойств 

              Список  объектов формы                Список событий          

Окно инструментов (ToolBox)