Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Завантаження графічного драйвера.

Серед функцій настройки графічного режиму слід виділити наступні:

 

void far detectgraph(int far *gdriver, int far *gmode);

void far initgraph(int far *gdriver, int far *gmode,

char far *pathdriver).

Функція detectgraphпризначена для визначення типу графічного адаптера. Ця функція повертає значення по адресах, вказаних першим і другим параметрами. Тут gdriver - покажчик на ціле число, що містить номер графічного драйвера. Наприклад, для CGA цей номер буде рівний 1, для EGA - 3, для VGA - 9, для Hercules - 7. Можна надавати значення за допомогою констант, описаних в graphics.h, як CGA = 1, EGA = 3, HERCMONO = 7 і VGA = 9. Другим параметром функції detectgraph буде покажчик на ціле число, що містить номер графічного режиму, що забезпечує максимальну роздільну здатність екрану. Якщо немає графічного адаптера, то функція detectgraph привласнює *gdriver = -2.

Функція initgraph призначена для завантаження графічного драйвера, що має номер *gdriver, і для установки графічного режиму номер *gmode. Якщо за адресою gdriver записаний нуль (*gdriver=detect), то функція спочатку звертається до функції detectgraph, а потім завантажує драйвер, номер якого був встановлений функцією detectgraph. (При цьому встановлюється найбільший з можливих номерів режимів.) Необхідна пам'ять для завантаження драйвера надається в "купі". Залежно від графічного режиму максимальна роздільна здатність екрану рівна

для адаптера CGA: CGACi=i (i=0,1,2,3) - 320x200; CGAHI=4 – 640x200;

для адаптера EGA : EGALO=0 - 640x200, EGAHI=1 - 640x350;

для адаптера VGA : VGALO=0 - 640x200, VGAMED=1 - 640x350, VGAHI=2 - 640x480.

Для вивантаження графічного драйвера застосовується функція, оголошена як void closegraph(void). Ця функція звільняє пам'ять з "купи", зайняту графічним драйвером.

Щоб обчислити роздільну здатність екрану по x і у, застосовуються функції

int getmaxx(void), int getmaxy(void).

Приклад: В даному прикладі номеру графічного драйвера додається значення

Ega=3, номеру графічного режиму - Egalo=0 . Визначаються роздільні здатності по X і У.

Код на C++

#include <stdio.h>

#include <graphics.h>

#include <conio.h>

void main()

{

int gdriver = EGA, gmode = EGALO;

int maxx, maxy;

initgraph (&gdriver, &gmode, "");

maxx = getmaxx();

maxy = getmaxy();

closegraph();

printf("maxx = %d , maxy = %d \n", maxx, maxy);

 

Після запуску даної програми на екран буде видано повідомлення: maxx = 639, maxy = 199.

Модулі драйвера можна перетворити в об'єктний файл за допомогою утиліти BGIOBJ.EXE. Потім отриманий об'єктний файл підшивається до програми за допомогою вказівки імені об'єктного файлу в проекті (після імені головного модуля). В цьому випадку перед ініціалізацією графічного режиму слід викликати функцію int registerbgidriver (void (*driver) (void)) підтвердження графічного драйвера.

Приклад: Після команди BGIOBJ С:\bc\bgi\egavga буде створений файл EGAVGA.OBJ. Тепер треба включити ім'я EGAVGA.OBJ у проект .prj. Ініціалізація графічного режиму проводиться таким чином:

Код на C++

#include <stdio.h>

#include <graphics.h>

#include <conio.h>

void main(){

int driver, mode;driver=registerbgidriver(EGAVGA_driver);

driver = VGA; mode = VGAHI;

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

closegraph();

}

Після установки графічного режиму за допомогою initgraph екран монітора є прямокутною областю, розбитою на (getmaxx()+1) ? (getmaxy()+1) однакових прямокутників - пікселів, сторони яких паралельні верхній і нижній межам екрану. Слово піксель ( pixels ) утворилося від злиття двох англійських слів: picture і elemets. Під пікселом розуміється мінімальний елемент зображення на екрані, що складається з декількох (кольорових) крапок і розглядається в програмі як одна точка певної яскравості або кольору. Під координатами пікселя маються на увазі цілочисельні координати центрів цих прямокутників, відлічувані від координат центру лівого верхнього прямокутника. Координати пікселів (X,y) змінюються в діапазонах 0 ? X ? getmaxx(), 0 ? Y ? getmaxy().

Графічні функції, з якими ми можемо працювати після установки графічного режиму, умовно можна розділити на три групи. Перша група складається з функцій, які нічого не виводять на екран, але встановлюють деякі параметри. Наприклад, функція setcolor задає номер кольору для подальшого виведення ліній. Друга група складається з функцій, які здійснюють вивід на екран. Щоб вивести точку заданого кольору, застосовується функція void putpixel(int x, int у, int color). Третя група складається з функцій, які нічого не виводять на екран, але дозволяють отримати інформацію про виведене зображення. Наприклад, для читання кольору піксела призначена функція unsigned getpixel(int x, int у). Імена функцій першої групи починаються, як правило із слова set (ставити, поміщати), а функції третьої групи - із слова get (отримувати, діставати).

Графічні функції проводять вивід в сторінку, яка називається активною.

Коефіцієнтом стиснення екрану називається відношення ширини пікселя до висоти пікселя. Коефіцієнт стиснення можна дізнатися за допомогою функції void getaspectratio(int far *xasp, int far *yasp). Ця функція записує за адресою yasp число 10000, а за адресою xasp - твір коефіцієнта стиснення на 10000.

Коефіцієнт стиснення враховується при виведенні кіл, дуг кіл і секторів круга. Коефіцієнт стиснення встановлюється при ініціалізації графічного режиму, виходячи з режиму, відповідного максимальній роздільній здатності екрану, і може бути змінений за допомогою функції void setaspectratio(int xasp, int yasp); в цьому випадку новим коефіцієнтом стиснення буде відношення xasp / yasp .

 

 


Читайте також:

  1. F) Наслідки демографічного вибуху.
  2. I підготовка їх до завантаження у повітряні судна
  3. Автоматичне завантаження програм
  4. АДАПТАЦІЯ ОПЕРАЦІЙНОЇ СИСТЕМИ ДО ЗМІНИ ЇЇ ЗАВАНТАЖЕННЯ.
  5. Аналітичний розрахунок завантаження горловин
  6. Аналітичний розрахунок сумарного завантаження типових перетинань
  7. бІблІографІЧного опису списку джерел
  8. Біофільтри із пластмасовим завантаженням .
  9. Види топографічного знімання
  10. Використання графічного способу в аналізі господарської діяльності
  11. Вимоги до бібліографічного опису наукової літератури
  12. Доставка і завантаження руди




Переглядів: 460

<== попередня сторінка | наступна сторінка ==>
Графічний режим. | Функції для графічних побудов.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.