• Название:

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


  • Размер: 0.15 Мб
  • Формат: RTF
  • Сообщить о нарушении / Abuse

    Осталось ждать: 20 сек.

Установите безопасный браузер



Предпросмотр документа

87

7. ЛАБОРАТОРНЫЙ ПРАКТИКУМ

В качестве инструментальных средств для разработки графических программ под управлением операционной системы (ОС) Windows используется язык программирования С++. В качестве среды программирования используется пакет Visual Studio версии 6.0.

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

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

·овладение технологией объектно-ориентированного программирования на языке С++;

·изучение графических инструментов и функций API Windows ;

·закрепление навыков построения различных структур данных, приобретенных в других учебных курсах;

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

В процессе создания программ студенты должны реализовывать пользовательский интерфейс. Однако, они должны, прежде всего, сосредоточиться именно на программной реализации методов и алгоритмов компьютерной графики. Курс лабораторных работ не предполагает изучение таких библиотек как MFC и OWL, а также графических пакетов OpenGL и DirectX.

В лабораторном практикуме поддерживается преемственность работ и программных кодов.

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

Примеры базовых классов для построения двухмерных и трехмерных сцен и объектов, а также операций c матрицами для преобразования объектов приведены в Приложении.

Лабораторная работа 1. Графических средств API Windows

Цель работы: Изучение графических средств API Windows

Рассматриваемые вопросы:

1.Графические функции подсистемы GDI.

2.Графические примитивы API Windows и функции построения графических примитивов.

3.Изучение способов описания объектов в мировых и оконных координатах, методов преобразования мировых координат в оконные.

4.Разработка структур данных и классов для представления двухмерных объектов, групп объектов и сцен.

5.Разработка программы отображения двухмерных сцен.

Задание к лабораторной работе:

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

Контрольные вопросы:

1.Опишите структуру программы, работающей под управлением ОС Windows.

2.Опишите состав API Windows и ее функций.

3.Что необходимо сделать программисту для обращения к графическим функциям API Windows?

4.Перечислите графические примитивы API Windows и функции построения графических примитивов.

5.Поясните организацию сцены и соответствующей структуры данных и классов для ее представления.

6.Что такое мировые и оконные координаты? Каким образом выполняются преобразования мировых координат в оконные?

7.Какие виды логических координат окна поддерживаются API Windows?

Контрольные вопросы:

Лабораторная работа 2. Аффинные преобразования на плоскости

Цель работы: Изучение аффинных преобразований на плоскости и разработка программы, реализующей аффинные преобразования объектов на плоскости.

Рассматриваемые вопросы:

1.Аффинные преобразования на плоскости. Частные случаи аффинных преобразований на плоскости.

2.Разработать программу, реализующую аффинные преобразования двухмерных объектов и групп объектов. Программу, созданную в предыдущей работе, использовать в качестве прототипа.

Задание к лабораторной работе:

Над объектами и группами объектов, состоящих из нескольких двухмерных объектов, заданных в мировых координатах, выполнить поочередно операции перемещения, отражения, поворота, масштабирования.

Контрольные вопросы:

1.Определение аффинных преобразований на плоскости.

2.Что сохраняется при аффинных преобразованиях.

3.Во что отображаются при аффинных преобразованиях следующие геометрические объекты: угол, параллельные прямые, пересекающие прямые, начало координат, точка в бесконечности.

4.Запишите уравнения, задающие общие аффинные преобразования на плоскости.

5.Запишите матрицу, задающую общие аффинные преобразования на плоскости.

6.Запишите уравнения, задающие перенос

7.Запишите уравнения, задающие поворот

8.Запишите уравнения, задающие масштаб.

9.Запишите матрицу, задающую перенос.

10.Запишите матрицу, задающую поворот.

11.Матрица, задающая масштаб.

12.Композиция аффинных преобразований.

13.Способ задания многоугольника (фигуры) матрицей.

14.Однородные координаты.

Лабораторная работа 3. Аффинные преобразования в пространстве

Цель работы: Изучение аффинных преобразований в пространстве. Разработка программы, реализующей аффинные преобразования объектов в пространстве.

Рассматриваемые вопросы:

1.Трехмерные мировые координаты. Преобразование координат.

2.Аффинные преобразования в пространстве. Частные случаи аффинных преобразований в пространстве.

3.Разработать программу, реализующую аффинные преобразования трехмерных объектов и групп объектов.

Задание к лабораторной работе:

Над трехмерными объектами и группами трехмерных объектов, заданных в мировых координатах, выполнить операции перемещения, отражения, поворота, масштабирования. Считать, что плоскость проецирования расположен параллельно плоскости XY, при преобразовании из трехмерных координат в двухмерные координата z отбрасывается.

Контрольные вопросы:

1.Определение аффинных преобразований в пространстве

2.Что сохраняется при аффинных преобразованиях в пространстве?

3.Запишите уравнения, задающие общие аффинные преобразования в пространстве.

4.Запишите матрицу, задающую общие аффинные преобразования в пространстве.

5.Способ задания многогранника матрицей тела и преобразование матрицы тела.

Лабораторная работа 4. Построение плоских проекций трехмерных объектов

Цель работы: Знакомство с основными видами центральных и параллельных проекций.

Рассматриваемые вопросы:

1. Способы построения плоских проекций. Параллельные и центральные проекции.

2. Параллельные проекции

2.1. Ортографическая проекция.

2.2.. Косоугольная проекция.

2.3. Аксонометрическая проекция

2.3.1. Изометрия

2.3.2. Диметрия

2.3.3. Триметрия

3. Центральные проекции

3.1. Перспективная проекция

Задание к лабораторной работе:

Построить для выбранных трехмерных объектов параллельные и центральные проекции. Положение тела, центр проекции (точка наблюдения) - на оси OZ, в центре координат.

Контрольные вопросы:

1.Что такое проекция? В чем заключается процесс проецирования?

2.Что такое центр проекции и проекторы.

3.Что такое проекционная плоскость.

4.Какая проекция является центральной.

5.Какая проекция является параллельной? Виды параллельных проекций.

6.Что сохраняется при ортографической проекции.

7.Что сохраняется при аксонометрической проекции.

8.Что такое косоугольная проекция? Типы косоугольных проекций.

9.Что сохраняется (не сохраняется) при косоугольных проекциях.

10.Что такое перспективная проекция.

11.Что такое перспективное преобразование.

12.В какие точки отображаются при перспективной проекции начало координат, точка в бесконечности.

13.Что такое точки схода.

Лабораторная работа 5. Удаление невидимых линий и поверхностей

Цель работы: Изучение алгоритмов удаления невидимых линий и поверхностей.

Рассматриваемые вопросы:

1.Картинные алгоритмы удаления невидимых линий и поверхностей.

2.Объектные удаления невидимых линий и поверхностей.

Задание к лабораторной работе:

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

Контрольные вопросы:

1.Когда применяются алгоритмы удаления невидимых линий и поверхностей?

2. Как классифицируются алгоритмы удаления невидимых линий и поверхностей?

3.Каким образом можно повысить быстродействие алгоритмов удаления невидимых линий и поверхностей?

4.Какие структуры данных удобно применять при реализации алгоритмов удаления невидимых линий и поверхностей?

Лабораторная работа 6. Построение реалистических изображений с учетом освещенности

Цель работы: Изучение методов построения реалистических изображений трехмерных объектов с учетом освещенности.

Рассматриваемые вопросы:

1.Распространения света и взаимодействие света с объектами.

2.Локальная модель освещения

3.Закраска полигональных поверхностей методами сплошного закрашивания, методом Гуро, методом Фонга.

4.Глобальная модель освещения. Трассировка лучей

Задание к лабораторной работе:

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

Контрольные вопросы:

1.Как происходит распространение света в однородной среде?

2.Какие эффекты происходят при взаимодействии света с границей сред?

3.В каком случае объект является видимым или невидимым? Что такое абсолютно черное тело?

4.Что такое основное, вторичное, фоновое освещение?

5.От чего зависят свойства отраженного света?

6.Что такое диффузное отражение.

7.Что происходит с освещенностью в случае нескольких источников света?

8.Сравните глобальную и локальную модели освещения.

9.Назначение метода трассировки лучей.

10.Прямая/обратная трассировка лучей (определение).

11.Какие ограничения вводятся на изображаемую сцену в методе трассировки лучей?

Лабораторная работа 7. Построение реалистических изображений на основе фракталов

Цель работы: Изучение алгоритмов построения фрактальных изображений

Рассматриваемые вопросы:

1.Основы фрактальной геометрии.

2.Применение фракталов для построения реалистических изображений.

Задание к лабораторной работе:

1.Линейные фракталы

1.1.Треугольник Серпинского

1.2.Лист папоротника

1.3.Фрактальное дерево

1.4.Фрактальная гора

2.Нелинейные фракталы

2.1Биоморфы

3.1Попкорн

4.1Множество Мандельброта

5.1Множество Жюлиа

Задание к лабораторной работе:

Реализовать программу построения фрактального изображения. Изображение должно быть цветным. Необходимо выполнить операцию перемещения и масштабирования фрактального изображения.

Контрольные вопросы:

1.Что такое фрактал? В чем основа фрактальной геометрии?

2.Виды и конкретные примеры фракталов?

3.Применение фракталов в компьютерной графике?