Графічний режим роботи ПК. Графічний екран дисплея складається з точок, які можна засвічувати певним кольором чи гасити, у результаті чого на екрані утворюється.

Презентация:



Advertisements
Похожие презентации
Автор презентації Надія Манько, СЗШ І-ІІІ ступенів 2 м.Яворова.
Advertisements

Основи алгоритмізації та програмування Підпрограми.
Основи алгоритмізації та програмування Процедури і функції побудови графічних зображень.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Рядкова величина – послідовність довільних символів, що охоплюється з обох боків апострофами. Для опису рядкових величин використовують ідентифікатор.
Структура програми. Вказівки введення, виведення.
Табличний процесор (електронні таблиці - ЕТ) Microsoft Excel.
Оператори. Введення і виведення даних. Оператор присвоювання Оператори це команди програми. Оператор присвоювання є основним оператором мови програмування.
1 Підпрограми- процедури (Turbo Pascal 7.0) Підпрограми- процедури (Turbo Pascal 7.0)
Структура програми. Вказівки введення й виведення.
Рядкові величини Рядок це послідовність символів кодової таблиці ЕОМ. При використанні у виразах рядок охоплюється з двох сторін апострофами. Кількість.
Програми з розгалуженнями.Команда IF Підготувала Крилік Анастасія 7-Д.
Ковальчук О.М КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) Інформатика-11 Тема-4 Ковальчук О.М., 2007.
Програми, модулі 1. Структура програми на ТП 1. Структура програми на ТП 1. Структура програми на ТП 1. Структура програми на ТП 2. Вигляд програми на.
Графічний редактор Paint Урок 29. Бліц - опитування 1. Вказати пристрої для введення графічної інформації. 2. Вказати пристрої для виведення графічної.
В ТП 7.0 існує тип даних STRING (рядок), спеціально призначений для обробки рядків (ланцюгів символів). Він не відноситься до простих типів даних і займає.
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Тема: Дефрагментація диску. Структура диску Диск це носій зовнішньої пам'яті комп'ютера, що має відповідний розмір та ємність. Доріжка концентричне коло,
Бройченко А.Г Підпрограми-функції (Turbo Pascal 7.0) Підпрограми-функції (Turbo Pascal 7.0) Інформатика-11 Тема-5.
Основи алгоритмізації та програмування Програми з розгалуженнями.
Транксрипт:

Графічний режим роботи ПК

Графічний екран дисплея складається з точок, які можна засвічувати певним кольором чи гасити, у результаті чого на екрані утворюється деяке зображення. Точки називаються пікселями. Кількість точок на екрані може бути різною, що залежить від якості екрана. Розглянемо екран, який має 640 точок у горизонтальному ( X ) напрямку і 480 у вертикальному ( У ). Початок відліку точок є у лівому верхньому куті екрана. Кожна точка характеризується двома координатами ( Х, У ). y x 0

Програми, що виконують графічні побудови, переважно є лінійними і складаються з викликів стандартних графічних процедур та функцій, зібраних у модулі Graph.tpu. Сам модуль може бути в бібліотеці Turbo.tpl або в деякому каталозі на диску. В останньому випадку модуль треба приєднати командою uses на початку програми. Потрібний також файл egavga.bgi – драйвер для VGA адаптера чи файл cga.bgi для відповідного CGA адаптера монітора тощо. Графічний режим спочатку треба задати. Це виконують так: ; var driver, mode : inteder; { Для характеристик дисплея } begin driver:= detect; { detect-стандартна стала} initgraph ( driver, mode, ); { Задання графічного режиму} if graphresult 0 then begin writeln (графічний режим задати не вдалося); halt {Стоп} end; end.

Можна також Ініціалізувати графічний режим так: Для підтримки програм, які використовують графічний режим роботи дисплея, в мові Turbo Pascal є модуль Graph. Даний модуль необхідно описати в розділі підключення модулів таким чином: User Graph; Далі в основній програмі в першу чергу треба ініціалізувати такий режим за допомогою процедури (підпрограми) InitGraph. Загальний вигляд даної процедури такий: InitGraph (імя драйвера, режим,шлях драйвера ); Для першого параметра – імя драйвера, в модулі Graph, можна вибрати таку константу: Detect=0 OGA=1 EGA=3 IBM8514=6 VGA=9 Так, наприклад, для дисплея VGA треба записати імя VGA або число 9. Параметрові – режими можна присвоїти значення, наприклад, або імя VGAHI, або число 2. (Можна використовувати ще значення: VGALO або 0, VGAMED або 1. Ці значення необхідно вибирати, виходячи з технічних характеристик адаптера вашого дисплея). На місці третього параметра – шлях до драйвера треба вказати шлях до каталог, де зберігається відповідний драйвер підтримки виборного режиму.

Наприклад InitGraph(VGA,2D:\TP70\BGI); InitGraph(VGA,2A:\TP70); Якщо ініціалізація пройшла успішно, то можна планувати зображення на екрані з розрахунком 640*480 пікселів. Зображення на екрані формується з окремих точок (їх використовують пікселями), які обєднуються в рядки. Кількість пікселів в одному рядку та кількість рядків на екрані залежить від типу адаптера дисплея, який знаходиться на окремій платі в системному блоці ЕОМ. В тому випадку, коли тип адаптера невідомий або програма буде виконуватися на компютерах різного типу, треба забезпечити автоматичне тестування адаптера. Для цього треба на місці першого параметра вказати імя DETECT (або 0), а в цілому виклик процедури матиме вигляд: InitGraph(Detect? GraphMode, ); В даному випадку на місці третього параметра вказано порожній рядок. Це значить, що відповідний драйвер повинен розміщуватися в каталозі з компілятором Turbo Pascal, інакше виникне помилка. Драйвери зберігаються у файлах з розширенням bgi(cga bgi egavga.bgi). Рекомендується завжди перевіряти результат роботи процедури InitGraph, для цього використовують функцію GraphMode. Якщо вона приймає значення 0, значить ініціалізація пройшла успішно, інакше виявлено помилку.

Інша функція Graph Error Msg видає код помилки. Повний перелік всіх кодів помилок наведено в документації за Turbo Pascal. Рекомендується використовувати приклад типової ініціації Var GRAPHDRIVER, GRAPHMODE,ERRORCODE:INTEGER; Begin GRAPHDRIVER:=detect; InitGraph(GRAPHDRIVER, GRAPHMODE,); ERRORCODE<>0then Begin Writeln(помилка графіки:); Writeln(graph error Msg(ERRORCODE)); Writeln(програму закінчено); Halt(1); End; Після завершення роботи в графічному режимі його закривають процедурою CloseGraph для переходу в текстовий режим.

Процедури і функції для графічних побудов Розглянемо процедури модуля GRAPH, при значені для графічних побудов. Putpixel(x,y,колір) – виводить в задану позицію точку вказаного кольору; Initgraph ( driver, mode, ) – задає графічний режим. Шляхом до драйвера зазначають (у лапках), якщо він не є в тому ж каталозі, що й файл turbo.exe; Detectgraph (, ) – повертає значення характеристик дисплея; Setcolor ( ) – задає колір майбутнього зображення; Setbkcolor ( )- задає колір фону. Можна використати такі кольори: black=0 – чорний, blue=1 – синій, green=2 – зелений, gyan=3 – блакитний, red=4 – червоний, megenta=5 – фіолетовий, brown=6 – коричневий, lightgray=7 – світло-сірий, darkgray=8 – темно-сірий, lightblue=9 – яскраво- синій, lightgreen=10 – яскраво-зелений, lightgyan=11 – яскраво-блакитний, lightred=12 – рожевий, lightmegenta=13 – малиновий, yellow=14 – жовтий, white=15 - білий; Putpixel (x, y, ) – висвітлює точку (x, y) заданим кольором; Line (x1, y1, x2, y2) – рисує лінію між двома точками; Lineto (x,y) – рисує лінію від поточної точки до точки (x, y); Linerel (dx, dy)- рисує лінію від поточної лінії з заданими приростами; Rectangle (x1, y1, x2, y2) – рисує прямокутник з заданими координатами діагонально протилежних вершин (лівої верхньої та правої нижньої); Setviewport (x1, y1, x2, y2, true) – задає координати нового графічного вікна. Логічна стала true задає режим відсікання зображення, яке виходитиме за межі вікна; Bar ( x1, у1,х2, у2,) – рисує зафарбований прямокутник;

Bar3d ( х1, у1,х2,у2,, true) – рисує паралелепіпед; Circle (x, y, R) – рисує коло з радіусом R і центром (х, у ); Arc ( x, y,,, ) – рисує дугу; Pieslice ( x, y,,, ) – рису зафарбований сектор; Ellipse (x, y,,,, ) – рисує еліпс чи дугу еліпса; Setfillstyle (, ) – задає спосіб заповнення замкнутої області залежно від значення параметра заповнення: 0 – заповнення кольором фону, solidfill=1 – суцільне заповнення, linefill=2 – заповнення товстими горизонтальними лініями, 3 – заповнення нахиленими лініями,..., hatchefill=7 – штрихування символом +, …, 10 – заповнення точками, closedotfill=11 – щільне заповнення точками; Floodfill ( x, y, ) – заповнює замкнену область, що містить точку ( х, у ); Closegraph – закриває графічний режим; Outtext ( ) – виводить заданий текст з поточної позиції; Outtextxy (x, y, ) – виводить текст у заданому місці; Settextstyle (,, ) – задає вигляд символів, напрямок виведення: 0 – горизонтально чи вертикально, і розміри символів: 1, 2, 3; Cleardevice – очищує увесь екран; Fillpoly(N, координати) – виводить замкнутий багатокутник і штрихує його поточним видом штрихування; Drawpoly(N, координати)- зображає ламану лінію. N – кількість точок злому, координати – масив координат точок злому (x1,y1,x2,y2,…xn,yn).

Розглянемо деякі функції модуля Graph. Graphresult – повертає код помилки, якщо неможливо задати графічний режим, і 0 – у разізадання; Getmaxx – повертає значення розміру екрана уздовж осі ОХ; Getmaxy – повертає значення розміру екрана уздовж осі ОY; Getcolor – повертає значення поточного кольору; Getcolor(x,y) – повертає значення кольору (x,y); Getx, gety – повертають координати поточного пікселля.

Задача. Нарисуємо емблему Львову. Program Emblema; Uses Crt, Graph; Var driver,mode:integer: Begin Clrcr; Driver:=detect; InitgraphDrive,mode,); Setcolor(3); Rectangle(100,0,300,200); Setfillstyle(1,3); Floodfill(200,100,100); Setcolor(14); Circle(200,100,100); Setfillstyle(1,14); Floodfill(200,100,14); Setcolor(0); Circle(200,100,100); Settextstyle(0,0,3); Outtextxy(135,95,Львів); Readln; End.