Лабораторная работа №1 Тема: Графические примитивы в языках программирования




Скачать 44.96 Kb.
НазваниеЛабораторная работа №1 Тема: Графические примитивы в языках программирования
Дата публикации06.09.2013
Размер44.96 Kb.
ТипЛабораторная работа
uchebilka.ru > Астрономия > Лабораторная работа
Лабораторная работа №1

Тема: Графические примитивы в языках программирования.

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

1.1. Инициализация и завершение работы с библиотекой


Для инициализации библиотеки служит функция void far initgraph (int far *driver, int far *mode, char far *path);

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

Значение DETECT сообщает библиотеке о том, что тип имеющегося видеоадаптера надо определить ей самой и выбрать для него режим наибольшего разрешения.

Второй параметр - mode - определяет режим.


Параметр


Режим


^ CGACO, CGAC1, CGAC2, CGAC3


320 на 200 точек на 4 цвета


CGAHI


640 на 200 точек на 2 цвета


EGALO

640 на 200 точек на 16 цветов


EGAHI

640 на 350 точек на 16 цветов


VGALO

640 на 200 точек на 16 цветов


VGAMED

640 на 350 точек на 16 цветов


VGAHI

640 на 480 точек на 16 цветов


Если в качестве первого параметра было взято значение DETECT, то параметр mode не используется.

В качестве третьего параметра выступает имя каталога, где находится драйвер адаптера - файл типа BGI (Borland's Graphics Interface):

  • CGA.BGI - драйвер адаптера CGA;

  • EGA VGA.BGI - драйвер адаптеров EGA и VGA;

  • HERC.BGI - драйвер адаптера Hercules.


Функция graphresult возвращает код завершения предыдущей графической операции int far graphresult ( void );

Успешному выполнению соответствует значение функции grOk.

Для окончания работы с библиотекой необходимо вызвать функцию closegraph:

void far closegraph ( void );

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

#include

#include

#include


#include

main ()

{

int mode;

int res;

int driver = DETECT;

initgraph ( &driver, &mode,"");

if ((res = graphresult ()) != grOk )

{

printf("\nGraphics error: %s\n", grapherrormsg (res));

exit A );

}

line ( О, О, О, getmaxy ());

line ( О, getmaxy (), getmaxx (), getmaxy ());

line ( getmaxx (), getmaxy (), getmaxx (), 0 );

line ( getmaxx {), О, О, О );

getch ();

closegraph ();

}

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

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



Узнать максимальные значения х и у координат пиксела можно, используя функции getmaxx и getmaxy:

int far getmaxx ( void );

int far getmaxy ( void );

Узнать, какой именно режим в действительности установлен, можно при помощи функции getgraphmode:

int far getgraphmode ( void );

Для очистки экрана удобно использовать функцию clearviewport:

void far clearviewport ( void );
^

1.2. Работа с отдельными точками


Функция putpixel ставит пиксел заданного цвега color в гочке с координатами (х,у):

void far putpixel (int x, int y, int color);

Функция getpixel возвращает-цвет пиксела с координатами (х, у):

unsigned far getpixei (int x, int у );
^

1.3. Рисование линейных объектов


При рисовании линейных объектов основным инструментом является перо, ко

торым эти объекты рисуются. Перо имеет следующие характеристики:

  • цвет (по умолчанию белый);

  • толщина (по умолчанию 1);

  • шаблон (по умолчанию сплошной).


Шаблон служит для рисования пунктирных и штрихиунктирных линий. Для установки параметров пера используются следующие функции выбора. Процедура setcolor устанавливает цвет пера:

void far setcolor (int color);

Функция sctlincstyle определяет остальные параметры пера:

void far setlinestyle (int style, unsigned pattern, int thickness );

Первый параметр задает шаблон линии. Обычно в качестве этого параметра выступает один из предопределенных шаблонов: SOLIDJLINE, DOTTEDJLINE, CENTERJL1NE, DASHED_LINE, USERBIT_LINE. Значение USERBIT_LINE указывает на то, что шаблон задается (пользователем) вторым параметром. Шаблон определяется 8 битами, где значение бита 1 означает, что в соответствующем месте будет поставлена точка, а значение Q - что точка ставиться не будет.

Третий параметр задает толщину линии в пикселах. Возможные значения параметра - NORM_WIDTH и THICKJWIDTH A и 3).

При помощи пера можно рисовать ряд линейных объектов - прямолинейные отрезки, дуги окружностей и эллипсов, ломаные.
^

1.3.1. Рисование прямолинейных отрезков


Функция line рисует отрезок, соединяющий точки (х1,у1) и: (х2, у2) void far line (int x1, int y1, int x2, int y2 );

1.3.2. Рисование окружностей


Функция circle рисует окружность радиуса r с центром в точке void far circle (int x, int y, int r);
^

1.3.2. Рисование дуг эллипса


Функции arc и ellipse рисуют дуги окружности (с центром в точке (x, у) и радиусом r) и эллипса (с центром (х, у), полуосями rх и rу, параллельными координатным осям) начиная с угла startAngle и заканчивая углом endAngle.

Углы задаются в градусах в направлении против часовой стрелки.



void far arc (int x, int y, int startAngle, int endAngle, int r);

void far ellipse (int x, int y, int startAngle, int endAngle, int rx, in ry);
Задания:

  1. Нарисовать с помощью функции line отрезок любой длины.

  2. С помощью функции circle нарисовать окружность с любым радиусом.

  3. С помощью функции arc и ellipse нарисовать дуги эллипса с любым углом.

Добавить документ в свой блог или на сайт

Похожие:

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №1 Тема
Тема: Разработка линейных программ и их реализация и тестирование в среде программирования Pascal

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconТема Задачи курса «Основы алгоритмических языков и программирования»
Он изучается в 1 и 2 семестрах. Включает в себя лекции, лабораторные работы и самостоятельную работу вне аудитории. В процессе изучения...

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа 1 тема: Установка, конфигурирование, запуск
Тема: Установка, конфигурирование, запуск Mysql server Работа с утилитами Mysql. Управление учетными записями пользователей: создание,...

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛекция 1-2 Тема : Моделирование и программирование. Этапы решения...
Тема: Моделирование и программирование. Этапы решения прикладных задач с использованием компьютера. Алгоритмы. Общие сведения о языках...

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №2 Двойственная задача линейного программирования...
Цель работы: получить навыки в переходе к двойственной задаче линейного программирования и решении задач линейного программирования...

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №5 Тема: Решение многокритериальной задачи линейного...
Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №4 Тема: Решение многокритериальной задачи линейного...
Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconМодульная контрольная работа з дисципліни: Високопродуктивні комп’ютерні системи
Язык программирования Оккам. Составление описаний. Процессы примитивы. Последовательные процессы- композиции. Параллельные процессы....

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №5 Тема: Решение многокритериальной задачи линейного...
Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю

Лабораторная работа №1 Тема: Графические примитивы в языках программирования iconЛабораторная работа №6 Тема: Решение многокритериальной задачи линейного...
Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<