Скачать 205.11 Kb.
|
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ _________________________ МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) _________________________ “КОМПЬЮТЕРНАЯ ГРАФИКА”ЛАБОРАТОРНЫЕ РАБОТЫ А.С. АЛЕЩЕНКО Москва 2005 ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ 1. Войти в директорию …:\ALLA\COMGRAF 2. Открыть файлы, указанные в задании FILNAME.PCC Общие положения для выполнения работ В рамках проводимых лабораторных работ требуется изучить и выполнить программы, соответствующие заданию, предъявить преподавателю результаты выполнения на экране, отразить в отчете изменения, вносимые в исходные файлы и проанализировать результаты внесенных изменений. Общие требования к проектированию: - необходимо использовать основные подходы структурного и модульного программирования как при оформлении программных текстов (листингов программ), так и при оформлении сопроводительной документации; - алгоритмы требуется доработать таким образом, чтобы можно было проследить логику их работы в процессе выполнения программы. ^ Графическая библиотека BORLAND C++ 3.0 Цель работы. Ознакомиться с основными приемами использования графической библиотеки для построения изображений средствами языка Си++. ^ В программе на языке C/C++ функции графической библиотеки становятся доступными после включения в текст программы ее заголовочного файла: #include Первой функцией, вызов которой должен предшествовать вызовам любых других графических функций, является initgraph(int *graphdriver, int *graphmode, char *pathtodriver). Эта функция загружает в память графический драйвер, инициализирует его и переводит систему в графический режим. Первый ее параметр – адрес переменной с указанием типа драйвера. Для выполнения лабораторных работ этой переменной должно быть присвоено значение константы VGA. Второй параметр – адрес переменной с указанием графического режима VGAMED. Третий параметр задает маршрут к каталогу, в котором находится графический драйвер. Перед тем как программа завершит свою работу необходимо вызвать функцию closegraph(), которая освобождает память, выделенную для графической системы, и возвращает экран в режим, в котором он был до вызова функции initgraph. Функция setviewport (int left, int top, int right, int bottom, int chip) устанавливает текущее окно для графического вывода. Графическим окном называется та часть экрана, в которой происходит рисование. И если последний параметр функции равен 1, то вне этой области изображение будет отсекаться. Границы окна устанавливаются с помощью первых четырех аргументов функции в пикселах. При программировании графики следует учитывать, что начало координат графической системы находится в левом верхнем углу экрана. Ось X направлена вправо, ось Y – вниз. Разрешение экрана в режиме VGAMED составляет 640 пикселов по горизонтали и 350 по вертикали. Функция clearviewport() очищает окно графического вывода. Вызов setcolor(int color) устанавливает текущий цвет для рисования. В качестве аргумента может быть использовано числовое значение цвета или его символьное имя.
Функция line(int x1, int y1, int x2, int y2) соединяет две точки отрезком, используя текущий выбранный цвет. В режиме VGAMED имеется две страницы графического вывода с индексами 0 и 1. В каждой из них можно рисовать, но отображаться на экране одновременно может только одна. Процесс рисования может занимать некоторое время, сама же смена страниц происходит мгновенно. Этой особенностью пользуются для достижения эффекта мультипликации. Допустим, на экране в некоторый момент отображается страница 0. Объявляем активной, то есть той, в которой будет происходить рисование (но не обязательно отображение!), страницу 1. Рисуем в ней следующий кадр. При этом изображение на экране меняться не будет, а функции рисования будут воздействовать только на хранящуюся в памяти картинку. После того как новое изображение сформировано, объявляем страницу 1 видимой. Кадр на экране сменился. Подобным образом процесс продолжается, но теперь уже для страницы 0. Функция setactivepage(int page) делает указанную страницу активной. Функция setvisualpage(int page) делает указанную страницу видимой. ЗАДАНИЕ |
![]() | На диске, выделенном в данной лаборатории (H), следует создавать собственные поддиректории в директории с номером группы, в которых... | ![]() | Разработка и исследование периферийных схем управления биполярной бис озу с байтовой организацией |
![]() | Заявитель-патентообладатель: Государственное образовательное учреждение высшего профессионального образования Московский государственный... | ![]() | ... |
![]() | Государственное образовательное учреждение высшего профессионального образования московский государственный институт радиотехники,... | ![]() | В. Н. Каразина (хну), Харьковский Национальный Авиационный Университет (хнау), Харьковский Национальный Экономический Университет... |
![]() | Сапр; методы прогнозирования развития средств автоматизированного проектирования. Организация инженерного труда | ![]() | Фролов А. Б., д т н., профессор, Московский энергетический институт (технический университет) |
![]() | Аэк «Комиэнерго» и др.), высших учебных заведений (Московский государственный университет леса, Сыктывкарский лесной институт, Сыктывкарский... | ![]() | Проверка и подтверждение достоверности показателей бухгалтерских отчетов или констатация их недостоверности |