Скачать 44.96 Kb.
|
Лабораторная работа №1 Тема: Графические примитивы в языках программирования. Цель: Изучить графические примитивы, научиться рисовать графические примитивы с помощью языков программирования. 1.1. Инициализация и завершение работы с библиотекойДля инициализации библиотеки служит функция void far initgraph (int far *driver, int far *mode, char far *path); Первый параметр задает библиотеке тип адаптера, с которым будет вестись работа. В соответствии с этим параметром загружается драйвер указанного видеоадаптера и производится инициализация всей библиотеки. Определен ряд констант, задающих набор стандартных драйверов: CGA, EGA, VGA, DETECT. Значение DETECT сообщает библиотеке о том, что тип имеющегося видеоадаптера надо определить ей самой и выбрать для него режим наибольшего разрешения. Второй параметр - mode - определяет режим.
Если в качестве первого параметра было взято значение DETECT, то параметр mode не используется. В качестве третьего параметра выступает имя каталога, где находится драйвер адаптера - файл типа BGI (Borland's Graphics Interface):
Функция 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 ); ^ Функция putpixel ставит пиксел заданного цвега color в гочке с координатами (х,у): void far putpixel (int x, int y, int color); Функция getpixel возвращает-цвет пиксела с координатами (х, у): unsigned far getpixei (int x, int у ); ^ При рисовании линейных объектов основным инструментом является перо, ко торым эти объекты рисуются. Перо имеет следующие характеристики:
Шаблон служит для рисования пунктирных и штрихиунктирных линий. Для установки параметров пера используются следующие функции выбора. Процедура 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). При помощи пера можно рисовать ряд линейных объектов - прямолинейные отрезки, дуги окружностей и эллипсов, ломаные. ^ Функция 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); ^ Функции 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); Задания:
|
![]() | Тема: Разработка линейных программ и их реализация и тестирование в среде программирования Pascal | ![]() | Он изучается в 1 и 2 семестрах. Включает в себя лекции, лабораторные работы и самостоятельную работу вне аудитории. В процессе изучения... |
![]() | Тема: Установка, конфигурирование, запуск Mysql server Работа с утилитами Mysql. Управление учетными записями пользователей: создание,... | ![]() | Тема: Моделирование и программирование. Этапы решения прикладных задач с использованием компьютера. Алгоритмы. Общие сведения о языках... |
![]() | Цель работы: получить навыки в переходе к двойственной задаче линейного программирования и решении задач линейного программирования... | ![]() | Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю |
![]() | Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю | ![]() | Язык программирования Оккам. Составление описаний. Процессы примитивы. Последовательные процессы- композиции. Параллельные процессы.... |
![]() | Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю | ![]() | Лабораторные работы по курсу тпр. Составитель ассистент кафедры асу воловщиков В. Ю |