- •Министерство образования Российской Федерации
- •Самостоятельная работа
- •Контрольные вопросы
- •Литература
- •Контрольные вопросы
- •Литература
- •Использование специальных эффектов и приемов оформления
- •Работа с цветом в PageMaker
- •Контрольные вопросы
- •Литература
- •Порядок выполнения работы
- •Контрольные вопросы
- •Литература
- •Расчетно-графическое задание
- •Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Приложение Вопросы к теоретическому зачету по дисциплине
- •Оглавление
Порядок выполнения работы
1. Изучить алгоритмы растровой развертки векторов и написать программы для их реализации.
2. Сравнить по качеству получаемых изображений алгоритмы ЦДА и Брезенхема, для чего рекомендуется использовать увеличенные пиксели (состоящие из нескольких пикселов экрана, например, блоки 55 пикселов). Для сравнения выводить точное изображение отрезка, используя функцию line.
3. Сравнить по быстродействию алгоритм, основанный на уравнении прямой и алгоритм Брезенхема. Для этого рекомендуется составить программу, которая заполняет часть экрана монитора прямыми линиями с использованием сначала алгоритма, основанного на уравнении прямой, а затем – с использованием алгоритма Брезенхема. Предлагается использовать процедуру gettime(&t), позволяющую получить системное время начала и конца работы алгоритма, где t – имя структуры, определенной как
struct time
{unsigned char ti_min;
unsigned char ti_hour;
unsigned char ti_sec;
unsigned char ti_hund}.
Контрольные вопросы
Назначение алгоритмов растровой графики.
Проблема быстродействия алгоритмов и регенерации изображения.
Требования к алгоритмам растровой развертки линий.
Сравнение симметричного и несимметричного алгоритмов ЦДА.
Графическое обоснование алгоритма Брезенхема растровой развертки линий.
Как обобщить алгоритм Брезенхема на отрезок с любым углом наклона.
Сравнить алгоритмы ЦДА и Брезенхема по качеству прорисовки линий.
Сравнить алгоритмы ЦДА и Брезенхема по быстродействию.
Литература
Вельтмандер П.В. Машинная графика: основные алгоритмы. Учеб. пособие в электронном виде: http://ermak.cs.nstu.ru/kg_rivs
Роджерс Д. Алгоритмические основы машинной графики. Пер. с англ. М.: Мир,1989.
Павлидис Т. Алгоритмы машинной графики и обработки изображений. Пер. с англ. М.: Радио и связь, 1986.
Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики. В 2-х книгах. Пер. с англ. М.: Мир, 1985.
Шикин Е.В., Боресков А.В. "Компьютерная графика. Полигональные модели". М.: "ДИАЛОГ-МИФИ", 2000.
Расчетно-графическое задание
Работа с графикой на языке с++
Цель работы
Освоить необходимые средства для написания программ на языке С++, работающих в графическом режиме.
Содержание работы и методические указания к ее выполнению
Приступая к работе с графикой, следует вспомнить, что:
в графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16-ти цветов;
координаты точек возрастают слева направо и сверху вниз. Левая верхняя точка имеет координаты (0,0), нижняя правая – (639, 479);
для того, чтобы программа могла выводить на экран графические примитивы (линии, окружности, прямоугольники), необходимо инициализировать графический режим.
Шаблон графической программы выглядит следующим образом:
// шаблон графической программы на Си
# include <graphics.h>
# include < conio.h>
# define Pathtodriver c:\\borlandc\\bgi\\
void main (void)
{
int gdriver = DETECT; // драйвер
int gmode; // режим
int errorcode; // код ошибки
initgraph (&gdriver, &gmode, Pathtodriver);
errorcode = graphresult ( );
if (errorcode != grOk) // ошибка инициализации
// графического режима
{
printf ( Ошибка: %d\n, errorcode);
puts ( Для завершения программы нажмите <Enter>);
getch ( );
return;
}
// далее инструкции программы
closegraph ( ); // завершение графического режима
}
Для выполнения задания необходимо выполнить следующие действия:
1. Изучить прототипы основных графических функций, описанных в заголовочных файлах <graphics.h> ,<conio.h>.
Ниже приведен набор основных функций, перечень которых может быть существенно расширен в зависимости от выполняемых заданий:
initgraph |
переключение компьютера в графический режим; |
closegraph |
переключение компьютера в текстовый режим; |
getmaxx, getmaxy |
определение наибольшего значения по координатам х, y; |
moveto |
перемещение в точку х, у; |
lineto |
вычерчивание линии между текущей позицией и точкой х,у; |
line |
вычерчивание линии между точками, заданными своими координатами; |
getmaxcolor |
получение информации о максимальном номере обозначения цвета; |
setcolor, setbkcolor |
установка цвета изображения и фона; |
getcolor, getbkcolor |
получение цвета изображения и фона; |
putpixel, getpixel |
получение и установка пикселя; |
outtext |
вывод графического текста с текущей позиции; |
outtextxy |
задание координат начальной точки х, у в пикселях и вывод графического текста; |
textwidth, textheight |
определение количества пикселей в размере строки по горизонтали и вертикали; |
settextstyle |
выбор шрифта и его размера; |
circle, arc, ellipse |
изображение круга, дуги, эллипса; |
setfillstyle |
выбор шаблона и цвета для заполнения; |
fillpolly |
заполнение цветом |
fillellipse |
заполнение эллипса цветом |
2. По предлагаемым ниже вариантам разработать программу на языке С++, решающую поставленную задачу. Результаты работы программы должны сопровождаться выводом в графическом режиме поясняющего сообщения.
3. Подготовить файл с разработанной программой, оттранслировать, собрать и выполнить программу с учетом требований операционных систем и программных оболочек, в которых эта программа выполняется. При необходимости исправить ошибки и вновь повторить технологический процесс решения задачи. Подключить необходимые заголовочные файлы graphics.h и conio.h, а также обеспечить нахождение в текущем каталоге драйвера графического адаптера.
4. Оформить отчет, включающий следующие пункты:
Титул
Условие задачи
Анализ задачи:
Исходные данные (что пользователь получает и вводит с клавиатуры)
Результаты (что пользователь увидит на экране – все возможные результаты, сообщения об ошибках)
Метод решения (связь между исходными данными и результатом)
Текст программы
Тесты (примеры) – исходные данные, результат, выводы
Общие выводы по работе
5. Защитить работу, ответив на вопросы преподавателя.