C Стандартні бібліотечні функції роботи з графікою

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Волзький Університет ім. В.Н. Татіщева

Факультет Інформатики та Телекомунікацій

Курсова робота

Дисципліна: Системне програмне забезпечення

Тема:

++: Стандартные библиотечные функции работы с графикой» «C + +: Стандартні бібліотечні функції роботи з графікою»

Тольятті 200г.

Зміст

Введення

1. Аналіз графічного модуля "graphics.h"

1.1 Аналіз функції модуля

1.2 Аналіз констант, типів і глобальних змінних модуля

2. Реалізація користувача бібліотеки "mouse.h"

Висновок

Додаток 1

Список використаної літератури

Введення

++. Тема даної курсової роботи стандартні бібліотечні функції роботи з графікою в C + +. ++, который можно подключить к любому проекту написанном на языке Си, с помощью заголовочного файла graphics . h . У даному роботі я постараюся розкрити основні моменти роботи функцій стандартного модуля C + +, який можна підключити до будь-якого проекту написаному на мові Сі, за допомогою заголовного файлу graphics. H. 32. lib и glaux . lib , подключаемые к проектам с помощью заголовочных файлов gl . h , glu . h , glaux . h . Звичайно, окрім даного модуля в сучасних середовищах розробки програмних додатків на даній мові є і такі не менш цікаві модулі як glu 32. Lib і glaux. Lib, що підключаються до проектів з допомогою заголовних файлів gl. H, glu. H, glaux. H. 32. dll . Вони дозволяють програмісту показати всю красу програми, а також можуть використовуватися для спецефектів, але дані модулі призначені для роботи з бібліотекою opengl 32. Dll. 9 x /2 k / XP , Linux Mandrake / Red Hat / Slackware и тому подобных. Використання даної бібліотеки, по суті справи, є робота з "комп'ютерною графікою", але під графічні оболонки таких операційних систем як Windows 9 x / 2 k / XP, Linux Mandrake / Red Hat / Slackware і тому подібних. . h предназначен, в основном, для работы под операционную систему MS - DOS , в которой просто невозможно использование самого opengl 'а. Ця тема куди більш велика і цікава, але, як ми знаємо, модуль graphics. H призначений, в основному, для роботи під операційну систему MS - DOS, в якій просто неможливе використання самого opengl 'а. А з цього приводу, я вважаю за потрібне, перейти безпосередньо до основного розділу даної роботи. Тобто приступити до розгляду стандартних функцій.

1. . h ” Аналіз графічного модуля "graphics. H"

- DOS . Як було вже сказано, даний модуль використовується для роботи з графікою під ОС MS - DOS. Функції, що використовуються в ньому, для роботи з графікою, та й як і сама графіка, досить примітивні. Отже, почнемо.

< graphics . h >). Для ініціалізації модуля потрібно підключити, так званий, заголовки (# include <graphics. H>). У цьому файлі описані всі функції, які потрібні для написання програми працює з "графікою".

1.1 Аналіз функції модуля

( & grdriver , & grmode , “ path ”); – функция инициализации графического режима, где & grdriver , & grmode , “ path ” – параметры загружаемого режима; initgraph (& grdriver, & grmode, "path"); - функція ініціалізації графічного режиму, де & grdriver, & grmode, "path" - параметри завантаження режиму;

и grmode – переменные типа integer ; grdriver і grmode - змінні типу integer;

” – путь к загружаемому драйверу графического режима. "Path" - шлях до завантажуваного драйверу графічного режиму.

(); – данная функция без каких либо параметров и закрывает текущий графический режим. Функція закриття графічного режиму: closegraph (); - дана функція без будь-яких параметрів і закриває поточний графічний режим.

( & grdriver , & grmode ); Функція визначення графічного драйвера і відео режиму: detectgraph (& grdriver, & grmode);

(); – возвращает указатель на заданную по умолчанию структуру палитры для текущего драйвера инициализированного по initgraph . Функція, що повертає структуру визначення палітри: getdefaultpalette (); - повертає покажчик на задану за замовчуванням структуру палітри для поточного драйвера ініціалізованої по initgraph.

(); – функция возвращает имя текущего графического драйвера. getdrivername (); - функція повертає ім'я поточного графічного драйвера.

etgraphmode (); – функция возвращает текущий графический режим. g etgraphmode (); - функція повертає поточний графічний режим.

( grdriver , & low , & high ); – функция возвращает диапазон режимов для данного графического драйвера, где grdriver , low , high – переменные типа integer . getmoderange (grdriver, & low, & high); - функція повертає діапазон режимів для даного графічного драйвера, де grdriver, low, high - змінні типу integer.

(); – сбрасывает текущие настройки в настройки по умолчанию. graphdefaults (); - скидає поточні налаштування в налаштування за замовчуванням.

(); – функция выделения памяти. _ Graphgetmem (); - функція виділення пам'яті. Цю функцію викликають підпрограми в графічній бібліотеці, щоб розподілити пам'ять. Цю функцію можна використовувати незалежно від графічної бібліотеки, викликавши її з вказанням потрібного обсягу пам'яті в байтах.

(); – функция освобождения памяти. _ Graphfreemem (); - функція звільнення пам'яті. (). Використовується в поєднанні з _ graphgetmem ().

(); – функция изменяет внутренний размер графического буфера. setgraphbufsize (); - функція змінює внутрішній розмір графічного буфера. (). Викликається до initgraph ().

(); – возвращает код ошибки для последней неудачно выполненной операции. graphresult (); - повертає код помилки для останньої невдало виконану операцію.

( int *name, int huge ( * detect )); – функция устанавливает драйвер определённый программистом. installuserdriver (int * name, int huge (* detect)); - функція встановлює драйвер певний програмістом. – название нового драйвера, * detect – указатель на дополнительную функцию авто определения, которая может сопровождать новый драйвер. * Name - назва нового драйвера, * detect - покажчик на додаткову функцію авто визначення, яка може супроводжувати новий драйвер. Ця функція (авто визначення) не бере ні яких параметрів і повертає цілочисельне значення.

( * grdriver ) – Функция сообщает графической системе, что драйвер устройства, на который указывает * grdriver был включён во время “линковки”. registerbgidriver (* grdriver) - Функція повідомляє графічній системі, що драйвер пристрою, на який вказує * grdriver був включений під час "компонування".

( * font ) – Функция информирует графическую систему, что шрифт, на который указывает * font был включен во время “линковки”. registerbgifont (* font) - Функція інформує графічну систему, що шрифт, на який вказує * font був включений під час "компонування".

() – Функция восстанавливает режим, существовавший до активизации графического режима функцией initgraph (). restorecrtmode () - Функція відновлює режим, що існував до активізації графічного режиму функцією initgraph ().

( int x , int y , int stangle , int endangle , int radius ); – Функция рисует дугу, по заданным координатам x , y , начальным и конечным углом stangle , endangle и заданным радиусом radius . arc (int x, int y, int stangle, int endangle, int radius); - Функція малює дугу, за заданими координатами x, y, початковим і кінцевим кутом stangle, endangle і заданим радіусом radius.

( int left , int top , int right , int bottom ); – Функция рисует прямоугольник начиная от левого верхнего угла с координатами left , top до правого нижнего угла с координатами right , bottom . bar (int left, int top, int right, int bottom); - Функція малює прямокутник починаючи від лівого верхнього кута з координатами left, top до правого нижнього кута з координатами right, bottom.

3 d ( int left , int top , int right , int bottom , int depth ); – Функция рисует “трёхмерный прямоугольник” или, так сказать, подобие параллелепипеда, начиная от верхнего левого угла, до правого нижнего угла и с указанием глубины depth . bar 3 d (int left, int top, int right, int bottom, int depth); - Функція малює "тривимірний прямокутник" або, так би мовити, подобу паралелепіпеда, починаючи від верхнього лівого кута, до правого нижнього кута і з зазначенням глибини depth .

( int x , int y , int radius ); – Функция рисует окружность с центром в точке с координатами ( x , y ) и радиусом radius . circle (int x, int y, int radius); - Функція малює коло з центром в точці з координатами (x, y) і радіусом radius.

(); – Функция очищает экран в графическом режиме и возвращает текущую позицию указателя в точку с координатами ( 0, 0). cleardevice (); - Функція очищає екран в графічному режимі і повертає поточну позицію покажчика в точку з координатами (0, 0).

(); – Функция стирает область просмотра и перемещает текущую позицию в точку с координатами ( 0, 0), относительно области просмотра. clearviewport (); - Функція стирає область перегляду і переміщує поточну позицію в точку з координатами (0, 0), щодо області перегляду.

( int numpoints , int * polypoints ); – Функция рисует полигон с количеством вершин numpoints и координатами вершин * polypoints . drawpoly (int numpoints, int * polypoints); - Функція малює полігон з кількістю вершин numpoints і координатами вершин * polypoints. является одномерным массивом. * Polypoints одномірно масивом.

( int x , int y , int stangle , int endangle , int xradius , int yradius ); – Функция рисует эллипс с координатами в точке ( x , y ), начальным и конечным углами stangle , endangle , и радиусами xradius , yradius по осям x и y . ellipse (int x, int y, int stangle, int endangle, int xradius, int yradius); - Функція малює еліпс з координатами в точці (x, y), початковим і кінцевим кутами stangle, endangle, і радіусами xradius, yradius по осях x і y.

( int numpoints , int * polypoints ); – Функция рисует и закрашивает заданным цветом полигон. fillpoly (int numpoints, int * polypoints); - Функція малює і зафарбовує заданим кольором полігон.

( int x , int y , int xradius , int yradius ); – Функция рисует закрашенный эллипс. fillelipse (int x, int y, int xradius, int yradius); - Функція малює зафарбований еліпс.

( int x , int y , int border ); – Область, ограниченная цветной границей закрашивается установленным образцом и цветом. floodfill (int x, int y, int border); - Область, обмежена кольоровий кордоном зафарбовується встановленим зразком і кольором.

( & arcinfo ); – Функция возвращает координаты последней точки, на которую был переведён указатель, где параметр & arcinfo объявлен как struct arccoordstype arcinfo . getarccoords (& arcinfo); - Функція повертає координати останньої точки, на яку був переведений покажчик, де параметр & arcinfo оголошений як struct arccoordstype arcinfo.

( & xasp , & yasp ); – Получает значения коэффициента сжатия в & xasp , & yasp , где xasp , yasp являются переменными типа integer . getaspectratio (& xasp, & yasp); - Отримує значення коефіцієнта стиску в & xasp, & yasp, де xasp, yasp є змінними типу integer.

() – Возвращает значение типа integer текущего цвета фона. getbkcolor () - Повертає значення типу integer поточного кольору фону.

() – Возвращает значение типа integer установленного на данный момент цвета. getcolor () - Повертає значення типу integer встановленого на даний момент кольору.

() – ( дополнение) Возвращает структуру определения палитры в переменную объявленную как struct palettetype far *<имя_переменной>=( void *) 0;. getdefaultpalette () - (доповнення) Повертає структуру визначення палітри в змінну оголошену як struct palettetype far * <ім'я_змінної> = (void *) 0;.

( char far * pattern ); – Копирует определённый пользователем заполненный образец в память. getfillpattern (char far * pattern); - Копіює визначений користувачем заповнений зразок у пам'ять.

( & fillinfo ); – Получает информацию о текущих настройках стиля и цвета, где параметр & fillinfo объявлен как struct fillsettingstype fillinfo . getfillsetting (& fillinfo); - Отримує інформацію про поточні настройки стилю і кольору, де параметр & fillinfo оголошений як struct fillsettingstype fillinfo.

( int left , int top , int right , int bottom , void far * bitmap ); – Сохраняет картинку в специально отведённой области памяти, где left , top , right , bottom координаты картинки, а * bitmap указатель на область памяти. getimage (int left, int top, int right, int bottom, void far * bitmap); - Зберігає зображення в спеціально відведеній області пам'яті, де left, top, right, bottom координати картинки, а * bitmap покажчик на область пам'яті.

( & lineinfo ); – Получает текущий тип линии, образец и толщину, где параметр & lineinfo объявлен как struct linesettingstype lineinfo . getlinesettings (& lineinfo); - Отримує поточний тип лінії, зразок і товщину, де параметр & lineinfo оголошений як struct linesettingstype lineinfo.

(); – Возвращает значение типа integer , которое соответствует номеру цвета. getmaxcolor (); - Повертає значення типу integer, яке відповідає номеру кольору.

(); – Возвращает значение типа integer , которое соответствует максимальному номеру графического режима, для текущего драйвера. getmaxmode (); - Повертає значення типу integer, яке відповідає максимальному номером графічного режиму, для поточного драйвера.

(); – Возвращает значение типа integer , которое соответствует максимальному количеству точек по оси x для текущего графического режима. getmaxx (); - Повертає значення типу integer, яке відповідає максимальній кількості точок по осі x для поточного графічного режиму.

(); – Возвращает значение типа integer , которое соответствует максимальному количеству точек по оси y для текущего графического режима. getmaxy (); - Повертає значення типу integer, яке відповідає максимальній кількості точок по осі y для поточного графічного режиму.

( int mode _ number ); – Возвращает значение типа integer , которое соответствует указанному графическому режиму. getmodename (int mode _ number); - Повертає значення типу integer, яке відповідає зазначеному графічному режиму.

( & palette ); – Получает информацию о текущей палитре, где параметр & palette объявлен как struct palettetype palette . getpalette (& palette); - Отримує інформацію про поточну палітрі, де параметр & palette оголошений як struct palettetype palette.

(); – Функция возвращает значение типа integer , соответствующее количеству цветов палитры для текущего графического режима. getpalettesize (); - Функція повертає значення типу integer, що відповідає кількості квітів палітри для поточного графічного режиму.

( int x , int y ); – Функция возвращает номер цвета точки, находящейся по координатам ( x , y ). getpixel (int x, int y); - Функція повертає номер кольору точки, що знаходиться за координатами (x, y).

( & textinfo ); – Функция возвращает текущие настройки фонта для текущего графического режима, где параметр & textinfo определён как struct textsettingstype textinfo . gettextsettings (& textinfo); - Функція повертає поточні налаштування фонта для поточного графічного режиму, де параметр & textinfo визначений як struct textsettingstype textinfo.

( & viewinfo ); – Получает информацию о текущей области просмотра, где параметр & viewinfo определяется как struct viewporttype viewinfo . getviewsettings (& viewinfo); - Отримує інформацію про поточну області перегляду, де параметр & viewinfo визначається як struct viewporttype viewinfo.

(); – Функция типа integer возвращает текущую позицию указателя по оси x . getx (); - Функція типу integer повертає поточну позицію покажчика по осі x.

(); – Функция типа integer возвращает текущую позицию указателя по оси y . gety (); - Функція типу integer повертає поточну позицію покажчика по осі y.

( int errorcode ); – Возвращает код ошибки в виде переменной errorcode типа intger . grapherrormsg (int errorcode); - Повертає код помилки у вигляді змінної errorcode типу intger.

( int left , int top , int right , int bottom ); – Определяет размер области памяти, необходимый для сохранения двоичного образа. imagesize (int left, int top, int right, int bottom); - Визначає розмір області пам'яті, необхідний для збереження двійкового образу.

( char far * name ); – Функция типа intger возвращает номер идентификатора шрифта, который можно передать функции settextstyle для выбора данного шрифта. installuserfont (char far * name); - Функція типу intger повертає номер ідентифікатора шрифту, який можна передати функції settextstyle для вибору даного шрифту. это путь к файлу шрифта. Параметр * name це шлях до файлу шрифту. Одночасно цією функцією можна підключити до двадцяти шрифтів.

( int x 0, int y 0, int x 1, int y 1); – Функция рисует линию от точки с координатами x 0, y 0 до точки с координатами x 1, y 1. line (int x 0, int y 0, int x 1, int y 1); - Функція малює лінію від точки з координатами x 0, y 0 до точки з координатами x 1, y 1. Не оновлює поточну позицію.

( int dx , int dy ); – Функция рисует линию от текущей позиции до точки, находящейся на относительном расстоянии от текущей позиции, затем передвигает текущую позицию. linerel (int dx, int dy); - Функція малює лінію від поточної позиції до точки, що знаходиться на відносному відстані від поточної позиції, потім пересуває поточну позицію.

( int x , int y ); – Рисует линию от текущей позиции до точки с координатами ( x , y ), затем переносит текущую позицию в ( x , y ). lineto (int x, int y); - Малює лінію від поточної позиції до точки з координатами (x, y), потім переносить поточну позицію в (x, y).

( int dx , int dy ); – Перемещает текущую позицию на относительное растояние. moverel (int dx, int dy); - Переміщає поточну позицію на відносне відстань.

( int x , int y ); – Перемещает текущую позицию в точку с координатами ( x , y ). moveto (int x, int y); - Переміщає поточну позицію в точку з координатами (x, y).

( char far * textstring ); – Выводит строку в графическом режиме. outtext (char far * textstring); - Виводить рядок у графічному режимі. Рядок повинен полягати в "".

( int x , int y , char far * textstring ); – Выводит строку в графическом режиме предварительно перейдя в точку с координатами ( x , y ). 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).

( void far * driver ); – Данная функция используется для регистрации удалённых графических драйверов. Registerfarbgidriver (void far * driver); - Дана функція використовується для реєстрації віддалених графічних драйверів.

( void far * font ); – Данная функция используется для регистрации удалённых шрифтов. Registerfarbgifont (void far * font); - Дана функція використовується для реєстрації віддалених шрифтів.

( int x , int y , int stangle , int endangle , int xradius , int yradius ); – Функция рисует сектор круга установленным цветом, затем заполняет его используя образец и цвет, установленные функциями setfillstyle или setfillpattern . sector (int x, int y, int stangle, int endangle, int xradius, int yradius); - Функція малює сектор кола встановленим кольором, потім заповнює його використовуючи зразок і колір, встановлені функціями setfillstyle або setfillpattern.

( int page ); – Устанавливает активную страницу для графического вывода. setactivepage (int page); - Встановлює активну сторінку для графічного виведення.

( & palette ); – Устанавливает полную палитру цветов для данного режима, где переменная & palette определена как struct palettetype palette . setallpalette (& palette); - Встановлює повну палітру кольорів для даного режиму, де змінна & palette визначена як struct palettetype palette.

( int xasp , int yasp ); – Заменяет заданный по умолчанию аспект сжатия графической системы. setaspectratio (int xasp, int yasp); - Заміняє заданий за замовчуванням аспект стиснення графічної системи.

( int color ); – Устанавливает цвет фона по его номеру заданному переменной color . setbkcolor (int color); - Встановлює колір фону за його номером заданому змінної color.

( int color ); – Устанавливает цвет по его номеру заданному переменной color . setcolor (int color); - Встановлює колір за його номером заданому змінної color.

( char far * upattern , int color ); – Выбирает определённый пользователем образец заливки. setfillpattern (char far * upattern, int color); - Вибирає визначений користувачем зразок заливки.

( int pattern , int color ); – Функция устанавливает образец и цвет заливки. setfillstyle (int pattern, int color); - Функція встановлює зразок і колір заливки.

( int mode ); – Устанавливает систему в графический режим, определённый параметром mode . setgraphmode (int mode); - встановлює систему в графічний режим, визначений параметром mode. Скидає всі налаштування в положення "за замовчуванням". Очищує екран.

( int linestyle , unsigned upattern , int thickness ); – Устанавливает стиль рисуемых линий для функций рисования line , lineto , rectangle , drawpoly , etc . setlinestyle (int linestyle, unsigned upattern, int thickness); - Встановлює стиль змальованих ліній для функцій малювання line, lineto, rectangle, drawpoly, etc.

( int colornum , int color ); – Устанавливает палитру от цвета colornum до цвета color . setpalette (int colornum, int color); - встановлює палітру від кольору colornum до кольору color.

( int colornum , int red , int green , int blue ); – Данная функция может использоваться с IBM 8514 и VGA драйверами. setrgbpalette (int colornum, int red, int green, int blue); - Дана функція може використовуватися з IBM 8514 і VGA драйверами.

( int horiz , int vert ); – Устанавливает выравнивание текста для графического режима. settextjustify (int horiz, int vert); - Задає вирівнювання тексту для графічного режиму. За умовчанням коштує вирівнювання по верхньому лівому кутку.

( int font , int direction , int charsize ); – Устанавливает характеристики текста: стиль, положение( горизонтальное или вертикальное), размер шрифта. settextstyle (int font, int direction, int charsize); - встановлює характеристики тексту: стиль, положення (горизонтальне або вертикальне), розмір шрифту.

( int multx , int divx , int multy , int divy ); – Устанавливает определённый пользователем “коэффициент сжатия” шрифта. setusercharsize (int multx, int divx, int multy, int divy); - встановлює певний користувачем "коефіцієнт стиснення" шрифту. : divx , высота как multy : divy . За замовчуванням ширина шрифту визначена як multx: divx, висота як multy: divy.

( int left , int top , int right , int bottom , int clip ); – Устанавливает новую область просмотра для графического вывода. setviewport (int left, int top, int right, int bottom, int clip); - встановлює нову область перегляду для графічного виведення. определяет отсечены или нет все рисунки текущей области просмотра. Параметр clip визначає відсічені чи ні всі малюнки поточної області перегляду.

( int page ); – Устанавливает страницу с номером page визуальной графической страницей. setvisualpage (int page); - Встановлює сторінку з номером page візуальної графічної сторінкою.

( int mode ); – Устанавливает режим вывода объектов в графическом режиме. setwritemode (int mode); - встановлює режим виведення об'єктів в графічному режимі. может принимать значения 0, которое соответствует режиму copy _ put или 1, соответствующее режиму xor _ put . Параметр mode може приймати значення 0, яке відповідає режиму copy _ put або 1, яке відповідає режиму xor _ put. _ put использует ассемблерную команду MOV , рисуя поверх всех объектов новый объект. Параметр copy _ put використовує ассемблерних команду MOV, малюючи поверх всіх об'єктів новий об'єкт. _ put использует команду XOR (команду неэквивалентности), замещая предыдущий объект таким же новым. Параметр xor _ put використовує команду XOR (команду нееквівалентності), заміщаючи попередній об'єкт таким же новим. _ put , вы получите первоначальный результат. Використовуючи двічі параметр xor _ put, ви отримаєте початковий результат.

( char far * textstring ); – Функция возвращает высоту строки в количестве точек. textheight (char far * textstring); - Функція повертає висоту рядка в кількості точок.

( char far * textstring ); – Функция возвращает ширину строки в количестве точек. textwidth (char far * textstring); - Функція повертає ширину рядка в кількості точок.

1.2 Аналіз констант, типів і глобальних змінних модуля

– Используется функцией getarccoords для получения параметров текущей области просмотра. arccoordstype - Використовується функцією getarccoords для отримання параметрів поточної області перегляду.

struct arccoordstype

{

int x, y; / * center points of arc * /

int xstart, ystart; / * start position * /

int xend, yend; / * end position * /

}

_ COLORS – Данная константа определяет цветовую схему, доступную для функция BGI , выполняющихся на CGA мониторах. CGA _ COLORS - Дана константа визначає кольорову схему, доступну для функція BGI, що виконуються на CGA моніторах. . H . Визначено в модулі GRAPHICS. H. , setbkcolor , setcolor , setpalette . Використовується функціями setallpalette, setbkcolor, setcolor, setpalette.

– Данная символьная константа устанавливает атрибут цвета символов на EGA и CGA мониторах. COLORS - Дана символьна константа встановлює атрибут кольору символів на EGA і CGA моніторах. . H . Визначено в модулі CONIO. H. . H ) textattr , textbackground , textcolor . Використовується функціями (функції описані в модулі CONIO. H) textattr, textbackground, textcolor.

_ COLORS – Данная константа определяет цветовую схему, доступную для функция BGI , выполняющихся на EGA мониторах. EGA _ COLORS - Дана константа визначає кольорову схему, доступну для функція BGI, що виконуються на EGA моніторах. . H . Визначено в модулі GRAPHICS. H. , setbkcolor , setcolor , setpalette . Використовується функціями setallpalette, setbkcolor, setcolor, setpalette.

_ patterns – Образцы заливки применяемые функциями getfillsettings и setfillstyle ( см. таблицу 1). fill _ patterns - Зразки заливки застосовувані функціями getfillsettings і setfillstyle (див. таблицю 1).

Таблиця 1.

Назва

Значення

Результат заповнення

EMPTY_FILL

0

Колір фону

SOLID_FILL

1

Суцільна заливка

_ FILL LINE _ FILL

2

Заливка типу "---"

LTSLASH_FILL

3

Заливка типу "///"

SLASH_FILL

4

"/ / /" Товсті лінії

_ FILL BKSLASH _ FILL

5

"\ \ \" Товсті лінії

LTBKSLASH_FILL

6

Заливка типу "\ \ \"

HATCH_FILL

7

Рідкісна штрихування

_ FILL XHATCH _ FILL

8

Сильна перехресна

_ FILL INTERLEAVE _ FILL

9

"Чергування рядків"

_ DOT _ FILL WIDE _ DOT _ FILL

10

Заливка точками (широкий)

Таблиця 1. продовження.

CLOSE_DOT_FILL

11

Заливка точками (вузькі)

_ FILL USER _ FILL

12

Визнач. користувачем

– Используется функцией getfillsettings для получения текущих настроек заливки. fillsettingstype - Використовується функцією getfillsettings для отримання поточних налаштувань заливки.

struct fillsettingstype

{

int pattern; / * current fill pattern * /

int color; / * current fill color * /

}

_ names – Имена для BGI шрифтов( см. таблицу 2). font _ names - Імена для BGI шрифтів (див. таблицю 2).

Таблиця 2.

Назва

Значення

Результат

DEFAULT_FONT

0

8 растровый шрифт 8 x 8 растровий шрифт

_ FONT TRIPLEX _ FONT

1

Штриховий потрійний шрифт

_ FONT SMALL _ FONT

2

Штриховий маленький шрифт

_ SERIF _ FONT SANS _ SERIF _ FONT

3

Штриховий "гротесковий" шрифт

_ FONT GOTHIC _ FONT

4

Штриховий готичний шрифт

(). Використовується функцією settextstyle ().

_ drivers – Константа, определяющая BGI графические драйверы( см. таблицу 3). graphics _ drivers - Константа, що визначає BGI графічні драйвери (див. таблицю 3).

Таблиця 3.

Константа

Значення

DETECT

авто определение ) 0 (авто визначення)

CGA

1

Таблиця 3. продовження.

MCGA

2

EGA

3

EGA64

4

EGAMONO

5

IBM8514

6

HERCMONO

7

ATT400

8

VGA

9

PC3270

10

(). Використовується функцією initgraph ().

_ errors – Константа, соответствующая коду ошибки, возвращённому функцией graphresult ()( см. таблицу 4). graphics _ errors - Константа, відповідна кодом помилки, поверненого функцією graphresult () (див. таблицю 4).

Таблиця 4.

Код помилки

Константа graphics_errors

Відповідне повідомлення про помилку

0

grOk

Немає помилок

-1

grNoInitGraph

) графика не установлена (использовать initgraph ) (BGI) графіка не встановлена ​​(використовувати initgraph)

-2

grNotDetected

Графічні апаратні засоби не виявлені

-3

grFileNotFound

Файл драйвера не знайдено

-4

grInvalidDriver

Недійсний файл драйвера

-5

grNoLoadMem

Недостатньо пам'яті щоб завантажити драйвер

-6

grNoScanMem

Недостатньо пам'яті у перегляді заливки

-7

grNoFloodMem

Недостатньо пам'яті для заливки

-8

grFontNotFound

Файл шрифту не знайдено

-9

grNoFontMem

Недостатньо пам'яті для завантаження шрифту

-10

grInvalidMode

Неприпустимий графічний режим для вибраного драйвера

-11

grError

Графічна помилка

-12

grIOerror

Графічна помилка вводу / виводу

-13

grInvalidFont

Неприпустимий файл шрифту

-14

grInvalidFontNum

Неприпустимий номер шрифту

-15

grInvalidDeviceNum

Неприпустимий номер пристрою

-18

grInvalidVersion

Неприпустимий номер версії

_ modes – Константы графических режимов для каждого BGI драйвера( см. таблицу 5). graphics _ modes - Константи графічних режимів для кожного BGI драйвера (див. таблицю 5).

Таблиця 5.

Графічний драйвер

Графічні режими

_ modes ) (Graphics _ modes)

Значення

Дозвіл

Палітра

Сторінки

CGA

CGAC0

CGAC1

CGAC2

CGAC3

CGAHI

0

1

2

3

4

320 x 200

320 x 200

320 x 200

320 x 200

640 x 200

C0

C1

C2

C3

2color

1

1

1

1

1

MCGA

MCGAC0

MCGAC0

MCGAC0

MCGAC0

MCGAMED

MCGAHI

0

1

2

3

4

5

320 x 200

320 x 200

320 x 200

320 x 200

640 x 200

640 x 480

C0

C1

C2

C3

2color

2color

1

1

1

1

1

1

EGA

EGALO

EGAHI

0

1

640 x 200

640 x 350

16color

16color

4

2

64 EGA 64

EGA64LO

EGA64HI

0

1

640 x 200

640 x 350

16color

4color

1

1

EGA-MONO

EGAMONOHI

EGAMONOHI

0

1

640 x 350

640 x 350

2color

2color

1 *

2 **

HERC

HERCMONOHI

0

720 x 348

2color

2

ATT400

ATT400C0

ATT400C1

ATT400C2

ATT400C3

ATT400MED

ATT400HI

0

1

2

3

4

5

320 x 200

320 x 200

320 x 200

320 x 200

640 x 200

640 x 400

C0

C1

C2

C3

2color

2color

1

1

1

1

1

1

VGA

VGALO

VGAMED

VGAHI

0

1

2

640 x 200

640 x 350

640 x 480

16color

16color

16color

2

2

1

PC3270

PC3270HI

0

720 x 350

2color

1

IBM8514

IBM8514HI

IBM8514LO

1

0

1024x 760

640 x 480

256color

256color


на EGAMONO плате * - 64 k на EGAMONO платі

на EGAMONO плате ** - 256 k на EGAMONO платі

(), initgraph () и константами graphics _ drivers . Дані параметри використовуються функціями detectgraph (), initgraph () і константами graphics _ drivers.

_ DIR – Данный параметр устанавливает направление графического вывода шрифта (Имя параметра: HORIZ _ DIR ; Значение: 0; Направление: Слева на право). HORIZ _ DIR - Цей параметр встановлює напрямок графічного виведення шрифту (Ім'я параметра: HORIZ _ DIR; Значення: 0; Напрямок: Зліва на право). (), settextstyle (), setusercharsize (). Даний параметр використовується функціями gettextsettings (), settextstyle (), setusercharsize ().

_ styles – Константы стилей линий для функций getlinesettings () и setlinestyle ()( см. таблицу 6). line _ styles - Константи стилів ліній для функцій getlinesettings () і setlinestyle () (див. таблицю 6).

Таблиця 6.

Константа

Значення

Результат

SOLID_LINE

0

Суцільна лінія

DOTTED_LINE

1

Пунктир

CENTER_LINE

2

Центрована лінія

DASHED_LINE

3

Пунктирна лінія

USERBIT_LINE

4

Визначається користувачем

_ widths – Константа ширины линий для функций getlinesettings () и setlinestyle ()( см. таблицу 7). line _ widths - Константа ширини ліній для функцій getlinesettings () і setlinestyle () (див. таблицю 7).

Таблиця 7.

Константа

Значення

Результат

_ WIDTH NORM _ WIDTH

1

Ширина в 1-н піксель

_ WIDTH THICK _ WIDTH

3

Ширина в 3-і піксели

– Используется функциями getlinesettings () и setlinestyle () для корректировки рисования линий. linesettingstype - Використовується функціями getlinesettings () і setlinestyle () для коригування малювання ліній.

struct linesettingstype

{

int linestyle;

int upattern;

; int thickness;

}

Таблиця 8. . Опис змінних структури linesettingstype.

Елемент

Опис

upattern

_ LINE . Встановлений користувачем бітовий зразок використовується коли стиль лінії коштує як USERBIT _ LINE.

linestyle

Визначає в якому вигляді будуть виводиться наступні лінії (суцільний, пунктирний, центрований).

thickness

Визначає чи буде товщина наступних ліній звичайною або товстої.

– 16-и разрядный образец, который применяется только если стиль линии определён как USERBIT _ LINE . upattern - 16-и розрядний зразок, який застосовується тільки якщо стиль лінії визначений як USERBIT _ LINE. У цьому випадку, коли біт у зразку слова одиниця, що відповідає точка в лінії малюється встановленим кольором.

равному 0 xFFFF (т.е. рисуются все пиксели), в то время как пунктирная линия может быть если upattern равно 0 x 3333 или 0 x 0F0F или 0 x 3 F 3F( см. таблицу 9). Наприклад, суцільна лінія відповідає upattern рівному 0 xFFFF (тобто малюються всі пікселі), в той час як пунктирна лінія може бути якщо upattern дорівнює 0 x 3333 або 0 x 0F0F або 0 x 3 F 3F (див. таблицю 9).

Таблиця 9.

16-і бітний зразок

upattern

.. Xx .. xx .. xx .. xx

.... Xxxx .... xxxx

.. Xxxxxx .. xxxxxx

xxxxxxxxxxxxxxxx

3333(штрих пунктир) 0 x 3333 (штрих пунктир)

0 F 0 F (длинный штрих пунктир) 0 x 0 F 0 F (довгий штрих пунктир)

3 F 3 F (более длинный штрих пунктир) 0 x 3 F 3 F (довший штрих пунктир)

(сплошная линия) 0 xFFFF (суцільна лінія)

– Определяет максимальное число цветов для массива полей в palettetype . MAXCOLORS - Визначає максимальне число квітів для масиву полів у palettetype. (). Використовується функцією setallpalette ().

– Содержит информацию о палитре для текущего графического драйвера при запросах с использованием функций getpalette (), setpalette (), setallpalette (). palettetype - Містить інформацію про палітру для поточного графічного драйвера при запитах з використанням функцій getpalette (), setpalette (), setallpalette ().

struct palettetype

{

unsigned char size;

signed char colors [MAXCOLORS +1];

}

Описание элементов структуры palettetype . Таблиця 10. Опис елементів структури palettetype.

Елемент

Опис

Size

Дає номер квітів у палітрі для поточного графічного драйвера в поточному режимі.

colors

Масив байтів, що містить необроблений номер кольору для кожного входу в палітру. Якщо елемент квітів -1, то палітра для даного входу не визначена.

– Содержит координаты точки. pointtype - Містить координати точки.

struct pointtype

{

; int x;

; int y;

}

_ ops – Параметры для функции putimage ()( см. таблицу 11). putimage _ ops - Параметри для функції putimage () (див. таблицю 11).

Таблиця 11.

Константа

Значення

Опис

_ PUT COPY _ PUT

0

Бітовий малюнок джерела копіюється на екран.

XOR_PUT

1

Виключає АБО. Відображає на екрані вихідне зображення.

OR_PUT

2

АБО. Відображає на екрані поточне зображення, не забираючи попереднього виведеного цього ж зображення.

_ PUT AND _ PUT

3

Виводить на екран картинку поверх інших об'єктів.

_ PUT NOT _ PUT

4

Копіює і вставляє інверсірованний джерело.

_ just – Параметр горизонтального и вертикального выравнивания для функции settextjustify (). text _ just - Параметр горизонтального і вертикального вирівнювання для функції settextjustify ().

Таблиця 12. _ just . Значення параметра text _ just.

Аргумент

Константа

Значення

Результат

Horiz

LEFT_TEXT

CENTER_TEXT

RIGHT_TEXT

0

1

2

По лівому краю

По центру

По правому краю

Vert

BOTTOM_TEXT

CENTER_TEXT

TOP_TEXT

0

1

2

По низу

По центру

По верху

– Настройки текста. text directions - Налагодження тексту. _ DIR и VERT _ DIR . Містить два параметри HORIZ _ DIR і VERT _ DIR.

– Используется для получения текущих настроек текста функцией gettextsettings (). textsettingstype - Використовується для отримання поточних налаштувань тексту функцією gettextsettings ().

struct textsettingstype

{

int font;

int direction;

int charsize;

int horiz;

int vert;

}

_ CHAR _ SIZE – Определённый пользователем размер символа. USER _ CHAR _ SIZE - Певний користувачем розмір символу. У таблиці 13 вказані значення цього параметра, а також розміри шрифтів, що відповідають заданому параметру.

Таблиця 13.

Значення

8 растровых шрифтов Розмір дисплея 8 x 8 растрових шрифтів

1

8 экранных блоков Символи дисплея в 8 x 8 екранних блоків

2

16 экранных блоков Символи дисплея в 16 x 16 екранних блоків

...

...

10

80 экранных блоков Символи дисплея в 80 x 80 екранних блоків


(), settextstyle (), setusercharsize () и параметром textsettingstype . Використовується функціями gettextsettings (), settextstyle (), setusercharsize () і параметром textsettingstype.

_ DIR – Данный параметр устанавливает направление графического вывода шрифта (Имя параметра: VERT _ DIR ; Значение: 1; Направление: Снизу в верх, поворачивает выводимый текст на 90 градусов против часовой стрелки). VERT _ DIR - Цей параметр встановлює напрямок графічного виведення шрифту (Ім'я параметра: VERT _ DIR; Значення: 1; Напрямок: Знизу в верх, повертає виведений текст на 90 градусів проти годинникової стрілки). (), settextstyle (), setusercharsize (). Даний параметр використовується функціями gettextsettings (), settextstyle (), setusercharsize ().

– Используется для получения настроек области вывода функцией getviewsettings (). viewporttype - Використовується для отримання настройок області виведення функцією getviewsettings ().

struct viewporttype

{

int left;

int top;

int right;

int bottom;

int clip;

}

2. . h ” Реалізація користувача бібліотеки "mouse. H"

2.0, BorlandC 3.1 или любой версии компилятора C ++ от любой другой корпорации, будь то MicroSoft , AT & T и т.д. У стандартній комплектації BorlandC 2.0, BorlandC 3.1 або будь-якої версії компілятора C + + від будь-якої іншої корпорації, будь то MicroSoft, AT & T і т.д. немає жодного модуля роботи з мишею як-то в звичайному або графічному режимі. - DOS . Я маю на увазі програми під ОС MS - DOS. ++, но и так называемого языка низкоуровневого программирования Assembler 'а. Звичайно, написання такого модуля зводиться не тільки до знань мови C + +, але й так званого мови низькорівневого програмування Assembler 'а.

Отже, приступимо. Для початку ми повинні визначити основні функції, типи та константи.

Таблиця 1. Константи.

Константа

Значення

Опис

_ NONE MB _ NONE

0

Кнопки миші не натиснуті

_ LEFT MB _ LEFT

1

Натиснута ліва кнопка миші

_ RIGHT MB _ RIGHT

2

Натиснуто права кнопка миші

MB_LAR

3

Натиснуті обидві кнопки миші

MB_MIDDLE

4

Натиснуто середня кнопка миші

_ MIDDLE работает только с системными мышами и мышами от компании Logitech . Уточнення: константа MB _ MIDDLE працює тільки з системними мишами і мишами від компанії Logitech.

Типи, які ми будемо використовувати в нашому модулі:

struct tPoint

{

int x;

int y;

};

struct tMouseState

{

tPoint loc;

int but;

};

определяет координаты курсора. Структура tPoint визначає координати курсору.

определяет позицию курсора и состояние кнопок мыши, т.е. Структура tMouseState визначає позицію курсору і стан кнопок миші, тобто натиснута яка або кнопка на мишці і якщо так то як саме.

Тепер опишемо основні функції, які використовуються в нас у модулі.

() “убивает” мышь. Функція ResetMouse () "вбиває" миша.

() отображает курсор мыши на мониторе. Функція ShowMouse () відображає курсор миші на моніторі.

() скрывает курсор мыши. Функція HideMouse () приховує курсор миші.

() типа tMouseState возвращает параметры мыши. Функція GetMouseState () типу tMouseState повертає параметри миші.

( int x , int y ) перемещает курсор на заданную позицию. Функція MoveMouseCursor (int x, int y) переміщує курсор на задану позицію.

( int max , int min ) устанавливает вертикальные пределы для мыши. Функція SetMouseVert (int max, int min) встановлює вертикальні межі для миші. Наприклад, якщо миша до цієї функції рухалася по всьому монітора, тобто від позиції (0, 0) до (640, 480), то після цієї функції вона буде рухатися тільки у встановленому просторі, тобто ) до (640, max ). від позиції (0, min) до (640, max).

( int max , int min ) устанавливает горизонтальные пределы для мыши. Функція SetMouseHorz (int max, int min) встановлює горизонтальні межі для миші. Дана функція повністю аналогічна попередньої. , 0) до ( max , 480). Миша буде рухатися в межах від (min, 0) до (max, 480).

Дані функції працюють як в графічному, так і в звичайному режимах. , то его можно подключать как “# include < mouse . h >”, иначе его подключение будет выглядеть как “# include “<путь> mouse . h ””. Якщо помістити цей модуль в папку де знаходяться основні модулі з розширенням *. h, то його можна підключати як "# include <mouse. H>", інакше його підключення буде виглядати як "# include" <шлях> mouse. H "".

Думаю що цих функція цілком достатньо для роботи з мишею. Лістинг модуля представлений у додатку 1.

Висновок

++ “ graphics . h ”. У цій роботі мною був розглянутий стандартний модуль для роботи з графікою на мові C + + "graphics. H". А також розроблений власний модуль для роботи з мишкою в графічному і звичайному режимах. Даний модуль є інтелектуальною власністю. Його подальша зміна без згоди розробника неможливо. Хоча додаток модуля іншими функціями і класами без зміни початкового коду функцій і типів можливо і вітається розробником. Програмний код модуля може вільно поширюватися і безкоштовний.

Дана робота може використовуватися у навчальних цілях, а на основі коду модуля можуть здійснюватися різні розробки додаткових функцій для роботи з мишею.

Додаток 1

. h ” Лістинг модуля "mouse. H"

# Include <stdio.h>

# Include <conio.h>

# Include <stdlib.h>

# Include <iostream.h>

# Include <graphics.h>

const

MB_NONE = 0,

MB_LEFT = 1,

MB_RIGHT = 2,

MB_LAR = 3,

MB_MIDDLE = 4;

struct tPoint {

int x;

int y;

};

struct tMouseState {

tPoint loc;

int but;

};

extern "C" void ResetMouse ();

extern "C" void ShowMouse ();

extern "C" void HideMouse ();

extern "C" struct tMouseState GetMouseState (void);

extern "C" void MoveMouseCursor (int x, int y);

extern "C" void SetMouseVert (int max, int min);

extern "C" void SetMouseHorz (int max, int min);

void ResetMouse ()

{

asm {

xor ax, ax

int 33h

}

}

void ShowMouse ()

{

asm {

mov ax, 1

int 33h

}

}

void HideMouse ()

{

asm {

mov ax, 2

int 33h

}

}

struct tMouseState GetMouseState (void)

{

struct REGPACK reg;

struct tMouseState state;

reg.r_ax = 3;

intr (0x33, ®);

state.loc.x = reg.r_cx;

state.loc.y = reg.r_dx;

state.but = reg.r_bx;

return (state);

}

void MoveMouseCursor (int x, int y)

{

asm {

mov ax, 4

mov cx, x

mov dx, y

int 33h

}

}

void SetMouseVert (int max, int min)

{

asm {

mov ax, 8

mov cx, min

mov dx, max

int 33h

}

}

void SetMouseHorz (int max, int min)

{

asm {

mov ax, 7

mov cx, min

mov dx, max

int 33h

}

}

Список використаної літератури

1. Галерея «ПОТРАПИЛИ». ++ и TURBO VISION . Неформальне введення в C + + і TURBO VISION. 1992р.

2. М.І. Болскі. Мова програмування Сі. 1988р.

3. . Юров В. І. Assembler. Підручник для вузів. 2-е видання. - СПб.: Пітер, 2004р.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
153кб. | скачати


Схожі роботи:
Стандартні бібліотечні функції С
Типи даних алгоритмічної мови TURBO Pascal Стандартні функції і оператори роботи з рядками
Оператори алгоритмічної мови Паскаль Стандартні функції і оператори роботи з рядками
Знайомство з фрактальною графікою
Бібліотечні уроки з 1 по 11 клас
Архівно-бібліотечні зібрання української еміграції з чехословацької республіки історія переміщень
Завдання і функції виховної роботи класного керівника
Стандартні програми Windows
Стандартні препарати і ефекти матриксу
© Усі права захищені
написати до нас