46559 (607861)
Текст из файла
Волжский Университет им. В.Н. Татищева
Факультет Информатики и Телекоммуникаций
Курсовая работа
Дисциплина: Системное программное обеспечение
Тема:
«C++: Стандартные библиотечные функции работы с графикой»
Тольятти 200г.
Содержание
Введение
1. Анализ графического модуля “graphics.h”
1.1 Анализ функции модуля
1.2 Анализ констант, типов и глобальных переменных модуля
2. Реализация пользовательской библиотеки “mouse.h”
Заключение
Приложение 1
Список используемой литературы
Введение
Тема данной курсовой работы стандартные библиотечные функции работы с графикой в C++. В данном работе я постараюсь раскрыть основные моменты работы функций стандартного модуля C++, который можно подключить к любому проекту написанном на языке Си, с помощью заголовочного файла graphics.h. Конечно, кроме данного модуля в современных средах разработки программных приложений на данном языке есть и такие не менее интересные модули как glu32.lib и glaux.lib, подключаемые к проектам с помощью заголовочных файлов gl.h, glu.h, glaux.h. Они позволяют программисту показать всю красоту приложения, а также могут использоваться для спецэффектов, но данные модули предназначены для работы с библиотекой opengl32.dll. Использование данной библиотеки, по сути дела, является работа с “компьютерной графикой”, но под графические оболочки таких операционных систем как Windows 9x/2k/XP, Linux Mandrake/Red Hat/Slackware и тому подобных. Эта тема куда более обширная и интересная, но, как мы знаем, модуль graphics.h предназначен, в основном, для работы под операционную систему MS-DOS, в которой просто невозможно использование самого opengl’а. А по этому поводу, я считаю нужным, перейти непосредственно к основному разделу данной работы. Т.е. приступить к рассмотрению стандартных функций.
1. Анализ графического модуля “graphics.h”
Как было уже сказано, данный модуль используется для работы с графикой под ОС MS-DOS. Функции, используемые в нём, для работы с графикой, да и как и сама графика, довольно примитивны. Итак, начнём.
Для инициализации модуля требуется подключить, так называемый, заголовочный файл (#include
1.1 Анализ функции модуля
initgraph( &grdriver, &grmode, “path”); – функция инициализации графического режима, где &grdriver, &grmode, “path” – параметры загружаемого режима;
grdriver и grmode – переменные типа integer;
“path” – путь к загружаемому драйверу графического режима.
Функция закрытия графического режима: closegraph(); – данная функция без каких либо параметров и закрывает текущий графический режим.
Функция определения графического драйвера и видео режима: detectgraph( &grdriver, &grmode);
Функция, возвращающая структуру определения палитры: getdefaultpalette(); – возвращает указатель на заданную по умолчанию структуру палитры для текущего драйвера инициализированного по initgraph.
getdrivername(); – функция возвращает имя текущего графического драйвера.
getgraphmode(); – функция возвращает текущий графический режим.
getmoderange( grdriver, &low, &high); – функция возвращает диапазон режимов для данного графического драйвера, где grdriver, low, high – переменные типа integer.
graphdefaults(); – сбрасывает текущие настройки в настройки по умолчанию.
_graphgetmem(); – функция выделения памяти. Эту функцию вызывают подпрограммы в графической библиотеке, чтобы распределить память. Данную функцию можно использовать независимо от графической библиотеки, вызвав её с указанием нужного объёма памяти в байтах.
_graphfreemem(); – функция освобождения памяти. Используется в сочетании с _graphgetmem().
setgraphbufsize(); – функция изменяет внутренний размер графического буфера. Вызывается до initgraph().
graphresult(); – возвращает код ошибки для последней неудачно выполненной операции.
installuserdriver( int *name, int huge( *detect)); – функция устанавливает драйвер определённый программистом. *name – название нового драйвера, *detect – указатель на дополнительную функцию авто определения, которая может сопровождать новый драйвер. Эта функция (авто определения) не берёт ни каких параметров и возвращает целочисленное значение.
registerbgidriver( *grdriver) – Функция сообщает графической системе, что драйвер устройства, на который указывает *grdriver был включён во время “линковки”.
registerbgifont( *font) – Функция информирует графическую систему, что шрифт, на который указывает *font был включен во время “линковки”.
restorecrtmode() – Функция восстанавливает режим, существовавший до активизации графического режима функцией initgraph().
arc( int x, int y, int stangle, int endangle, int radius); – Функция рисует дугу, по заданным координатам x, y, начальным и конечным углом stangle, endangle и заданным радиусом radius.
bar( int left, int top, int right, int bottom); – Функция рисует прямоугольник начиная от левого верхнего угла с координатами left, top до правого нижнего угла с координатами right, bottom.
bar3d( int left, int top, int right, int bottom, int depth); – Функция рисует “трёхмерный прямоугольник” или, так сказать, подобие параллелепипеда, начиная от верхнего левого угла, до правого нижнего угла и с указанием глубины depth.
circle( int x, int y, int radius); – Функция рисует окружность с центром в точке с координатами ( x, y) и радиусом radius.
cleardevice(); – Функция очищает экран в графическом режиме и возвращает текущую позицию указателя в точку с координатами ( 0, 0).
clearviewport(); – Функция стирает область просмотра и перемещает текущую позицию в точку с координатами ( 0, 0), относительно области просмотра.
drawpoly( int numpoints, int *polypoints); – Функция рисует полигон с количеством вершин numpoints и координатами вершин *polypoints. *polypoints является одномерным массивом.
ellipse( int x, int y, int stangle, int endangle, int xradius, int yradius); – Функция рисует эллипс с координатами в точке ( x, y), начальным и конечным углами stangle, endangle, и радиусами xradius, yradius по осям x и y.
fillpoly( int numpoints, int *polypoints); – Функция рисует и закрашивает заданным цветом полигон.
fillelipse( int x, int y, int xradius, int yradius); – Функция рисует закрашенный эллипс.
floodfill( int x, int y, int border); – Область, ограниченная цветной границей закрашивается установленным образцом и цветом.
getarccoords( &arcinfo); – Функция возвращает координаты последней точки, на которую был переведён указатель, где параметр &arcinfo объявлен как struct arccoordstype arcinfo.
getaspectratio( &xasp, &yasp); – Получает значения коэффициента сжатия в &xasp, &yasp, где xasp, yasp являются переменными типа integer.
getbkcolor() – Возвращает значение типа integer текущего цвета фона.
getcolor() – Возвращает значение типа integer установленного на данный момент цвета.
getdefaultpalette() – ( дополнение) Возвращает структуру определения палитры в переменную объявленную как struct palettetype far *=(void *) 0;.
getfillpattern( char far *pattern); – Копирует определённый пользователем заполненный образец в память.
getfillsetting( &fillinfo); – Получает информацию о текущих настройках стиля и цвета, где параметр &fillinfo объявлен как struct fillsettingstype fillinfo.
getimage( int left, int top, int right, int bottom, void far *bitmap); – Сохраняет картинку в специально отведённой области памяти, где left, top, right, bottom координаты картинки, а *bitmap указатель на область памяти.
getlinesettings( &lineinfo); – Получает текущий тип линии, образец и толщину, где параметр &lineinfo объявлен как struct linesettingstype lineinfo.
getmaxcolor(); – Возвращает значение типа integer, которое соответствует номеру цвета.
getmaxmode(); – Возвращает значение типа integer, которое соответствует максимальному номеру графического режима, для текущего драйвера.
getmaxx(); – Возвращает значение типа integer, которое соответствует максимальному количеству точек по оси x для текущего графического режима.
getmaxy(); – Возвращает значение типа integer, которое соответствует максимальному количеству точек по оси y для текущего графического режима.
getmodename( int mode_number); – Возвращает значение типа integer, которое соответствует указанному графическому режиму.
getpalette( &palette); – Получает информацию о текущей палитре, где параметр &palette объявлен как struct palettetype palette.
getpalettesize(); – Функция возвращает значение типа integer, соответствующее количеству цветов палитры для текущего графического режима.
getpixel( int x, int y); – Функция возвращает номер цвета точки, находящейся по координатам ( x, y).
gettextsettings( &textinfo); – Функция возвращает текущие настройки фонта для текущего графического режима, где параметр &textinfo определён как struct textsettingstype textinfo.
getviewsettings( &viewinfo); – Получает информацию о текущей области просмотра, где параметр &viewinfo определяется как struct viewporttype viewinfo.
getx(); – Функция типа integer возвращает текущую позицию указателя по оси x.
gety(); – Функция типа integer возвращает текущую позицию указателя по оси y.
grapherrormsg( int errorcode); – Возвращает код ошибки в виде переменной errorcode типа intger.
imagesize( int left, int top, int right, int bottom); – Определяет размер области памяти, необходимый для сохранения двоичного образа.
installuserfont( char far *name); – Функция типа intger возвращает номер идентификатора шрифта, который можно передать функции settextstyle для выбора данного шрифта. Параметр *name это путь к файлу шрифта. Одновременно данной функцией можно подключить до двадцати шрифтов.
line( int x0, int y0, int x1, int y1); – Функция рисует линию от точки с координатами x0, y0 до точки с координатами x1, y1. Не обновляет текущую позицию.
linerel( int dx, int dy); – Функция рисует линию от текущей позиции до точки, находящейся на относительном расстоянии от текущей позиции, затем передвигает текущую позицию.
lineto( int x, int y); – Рисует линию от текущей позиции до точки с координатами ( x, y), затем переносит текущую позицию в ( x, y).
moverel( int dx, int dy); – Перемещает текущую позицию на относительное растояние.
moveto( int x, int y); – Перемещает текущую позицию в точку с координатами ( x, y).
outtext( char far *textstring); – Выводит строку в графическом режиме. Строка должна заключатся в “”.
outtextxy( int x, int y, char far *textstring); – Выводит строку в графическом режиме предварительно перейдя в точку с координатами ( x, y).
pieslice( int x, int y, int stangle, int endangle, int radius); – Рисует и закрашивает замкнутый сектор круга.
putimage( int left, int top, void far *bitmap, int op); – Выводит битовый образ на экран.
putpixel( int x, int y, int color); – Рисует точку с координатами ( x, y) и цветом color.
rectangle( int left, int top, int right, int bottom); – Рисует прямоугольник от точки с координатами (left, top) до точки с координатами ( right, bottom).
Registerfarbgidriver (void far *driver); – Данная функция используется для регистрации удалённых графических драйверов.
Registerfarbgifont (void far *font); – Данная функция используется для регистрации удалённых шрифтов.
sector (int x, int y, int stangle, int endangle, int xradius, int yradius); – Функция рисует сектор круга установленным цветом, затем заполняет его используя образец и цвет, установленные функциями setfillstyle или setfillpattern.
setactivepage( int page); – Устанавливает активную страницу для графического вывода.
setallpalette( &palette); – Устанавливает полную палитру цветов для данного режима, где переменная &palette определена как struct palettetype palette.
setaspectratio( int xasp, int yasp); – Заменяет заданный по умолчанию аспект сжатия графической системы.
setbkcolor( int color); – Устанавливает цвет фона по его номеру заданному переменной color.
setcolor( int color); – Устанавливает цвет по его номеру заданному переменной color.
setfillpattern( char far *upattern, int color); – Выбирает определённый пользователем образец заливки.
setfillstyle( int pattern, int color); – Функция устанавливает образец и цвет заливки.
setgraphmode( int mode); – Устанавливает систему в графический режим, определённый параметром mode. Сбрасывает все настройки в положение “по умолчанию”. Очищает экран.
setlinestyle( int linestyle, unsigned upattern, int thickness); – Устанавливает стиль рисуемых линий для функций рисования line, lineto, rectangle, drawpoly, etc.
setpalette( int colornum, int color); – Устанавливает палитру от цвета colornum до цвета color.
setrgbpalette( int colornum, int red, int green, int blue); – Данная функция может использоваться с IBM 8514 и VGA драйверами.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















