Скачиваний:
168
Добавлен:
15.06.2014
Размер:
2.23 Mб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

Факультет компьютерных систем и сетей

Кафедра Программное обеспечение информационных . технологий

А.Т.Пешков

Электронный учебно-методический комплекс по дисциплине

Алгоритмические основы машинной графики

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

Для студентов специальности Т.10 02 00

«Программное обеспечение информационных технологий»

всех формы обучения.

Минск 2007

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

по дисциплине «Алгоритмические основы машинной графики»

Лабораторный практикум включает шесть лабораторных работ.

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

В приложении к лабораторным работам дается краткое описание графического редактора Corel Draw, которое используется при выполнении лабораторных работ №2 и №3.

Лабораторная работа №1

«Анимация и морфинг»

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

Программа должна предусматривать два режима отображения графической информации:

  • отображение на экране всего множества заданных фигур;

  • отображение одной текущей фигуры.

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

  • первый раз фигура прорисовывается заданным цветом;

  • второй раз та же фигура прорисовывается с использованием цвета фона.

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

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

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

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

1-ый способ перемещения.

При этом способе необходимо обеспечить метаморфозу многоугольника из начальной формы в заданную конечную форму. На приведенном рисунке (рис.1-1) этот способ иллюстрируется для случая перехода исходного квадрата в конечный треугольник.

В общем случае при этом способе необходимо выполнить следующие действия.

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

  2. Для каждой исходной опорной точки определяется шаг движения исходной опорной точки к конечной по соответствующей линии-траектории, соединяющей рассматриваемые точки. Этот шаг рассчитывается посредством деления длины линии-траектории на число заданных шагов (это число во всех вариантах равно 30). Линия-траектория на экране не отображается.

  3. Формируются новые координаты опорной точки, используя полученный для этой точки шаг перемещения.

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

Связь начальных и конечных узловых точек может задаваться:

  • в соответствии с последовательности их расположения в контуре фигуры; в свою очередь в этом случае возможны два варианта:

  • узловые точки начальной и конечной фигур берутся в одинаковом направлении, т.е. в направлении по ходу часовой стрелки (схема 1) или в направлении против часовой стрелки (схема 2);

  • узловые точки начальной и конечной фигур берутся с использованием разного направления их обхода в контуре фигуры, например, в исходной фигуре они берутся в порядке направления хода часовой, а в конечной – в направлении против часовой стрелки (схема 3), или наоборот (схема 4);

  • связь конечных и начальных узловых точек выбираться случайным образом (используется функция «random» (схема 5).

Рис.1-1

На приведенном рисунке (Рис.1-1) используется связь начальных точек с конечными по схеме 2.

При рассматриваемом способе метаморфозы возможно использование вертикальной перегородки. Перегородка располагается между исходной и конечной фигурами (примерно посередине) и на экране не отображается. Она используется только для расчета очередного набора узловых точек. За первую половину заданного количества шагов (15 шагов) узловая точка перемещается от своего начального положения до точки пересечения соответствующей ей линии-траектории с линией-перегородкой. За вторую половину заданного количества шагов узловая точка перемещается от своего положения на линии-перегородки до конечной узловой точки.

При этом возможны следующие варианты соединения текущих узловых точек:

  • порядок соединение узловых точек в каждом наборе сохраняется на всей траектории перемещения (от начального узловой точки до линии- перегородки и далее до конечного положения) и определяется по одной из выше описанные схемы 1-5 (вариант «П1»;

  • порядок соединение узловых точек в каждом наборе до линии-перегородки соответствует порядку расположения соответствующих узловых точек в исходном многоугольнике, а после перегородки соединение узловых точек в каждом очередном наборе соответствует порядку расположения соответствующих узловых точек в конечном многоугольнике (вариант «П2»).

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

2-ый способ перемещения.

При этом способе необходимо обеспечить хаотическое движение изменяющегося многоугольника.

Хаотическое движение многоугольника может быть получено за счет изменения положения его центра на вектор направления V с параметрами (vx,vy), где:

  • vx – проекция вектора V на координатную ось X, которая рассчитывается согласно выражению:

vx =rx;

  • vy – проекция вектора V на координатную ось Y, которая рассчитывается согласно выражению:

vy =sy;

  • r и s – коэффициенты, задаваемые функцией random; они могут принимать значения в диапазоне от -2 до +2.

Значение для x и y задаются студентом, но при условии обеспечения эффекта движения без скачков.

Изменение фигуры может происходить посредством:

  • уменьшением масштаба (рис.1-2 b) на каждом шаге на величину 1/30 ее текущего размера (динамический режим ДР1);

  • перемещением узловой точки к ближайшей соседней узловой точке (рис.1-2 a) по ребру на 1/30 часть текущей длины ребра (динамический режим ДР2).

Рис.

Перечень вариантов приведен в виде таблицы

Рис.1-2

Перечень индивидуальных заданий по данной лабораторной работе приведен в таблице 1-1

Варианты индивидуальных заданий. Таблица 1-1

№ варианта

Многоугольник 1

Многоугольник 2

Способ перемещения

Способ изменения

перегородка

Схема связи

3

4

1

-

-

1

4

5

1

-

-

2

5

6

1

-

-

3

6

3

1

-

-

4

3

5*

1

-

-

5

4

6

1

-

Пр1

1

5

3

1

-

Пр1

2

6

4

1

-

Пр1

3

3

6*

1

-

Пр2

4

4

3

1

-

Пр2

5

5

4

1

-

Пр2

1

6

-

2

1

-

ДР1

3

-

2

1

-

ДР1

4

-

2

1

-

ДР1

5*

-

2

2

-

ДР2

6

-

2

2

-

ДР2

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

Сдача лабораторной работы проходит при явке студента в университет.

Лабораторная работа № 2

«Изучение графического пакета COROL DRAW».

Темы 1-6

Целью данной лабораторной работы является изучение стандартного графического пакета.

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

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

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

Сдача лабораторной работы осуществляется при явке студента в университет.

Лабораторная работа № 3

«Изучение графического пакета COROL DRAW».

Темы 7-12.

Целью данной лабораторной работы является изучение стандартного графического пакета.

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

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

Сдача лабораторной работы осуществляется при явке студента в университет.

Лабораторная работа № 4