Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Група процедур та функцій управління режимами роботи графічного адаптера ⇐ ПредыдущаяСтр 2 из 2
1) процедура DetectGraph виконується для тестування графічного адаптера: DetectGraph (var Driver, Mode: integer);
Ця процедура може бути викликана до ініціалізації графічного режиму. Параметри: Driver – повертає тип драйвера; Mode - повертає максимальне значення відповідного режиму. Ці значення і рекомендується підставляти як фактичні параметри процедури InitGraph. 2) група процедур та функцій управління режимами роботи графічного адаптера: а) функція GetGraphMode: integer повертає код установленого режиму роботи графічного адаптера. б) функція GetMaxMod: integer; повертає максимальний номер коду режиму графічного адаптеру; в) функція GetModName (ModNum: integer): string; повертає значення типу STRING, яке містить ім’я режиму роботи за його номером; г) функція GetDriveName: string; повертає ім’я поточного графічного драйвера; д) процедура GetModeRange (Driver: integer; var LoMode, HyMode: integer); повертає діапазон можливих режимів роботи заданого графічного драйвера: Driver – тип адаптера; LoMode – мінімальне значення коду режиму адаптера; HiMode - мінімальне значення коду режиму адаптера. !Особливість!: - якщо значення Drive задано невірно, то змінні отримують значення –1; - перед звертанням до процедури можна не встановлювати графічний режим. 3) процедур установки текстового та графічного режимів: а) RestorCRTMode; повертає до текстового режиму. !Особливість!: навідміну від CloseGraph графічний драйвер залишається у пам’яті, а також залишаються установленими графічного режиму. б) процедура SetGraphMode (Mode: integer); установлює графічний режим за вказаним кодом – Mode. !Осбливість!: для повернення до попереднього графічного режиму на місце параметра мінімальне значення коду режиму адаптера Mode можна вставити функцію GetGraphMode. Розглянемо приклади використання процедур роботи з відеорежимами. Приклад 4: Перехід з графічного режиму до текстового і знову до графічного.
Uses Graph; Var Driver, Mode, Error: integer; Begin Driver:= Detect; InitGraph (Driver, Mode, ‘’); Error GraphResult; If Error <> 0 then WriteLn (GraphErrarMsg (Error)) Else Begin WriteLn (‘Це графічний режим’); ReadLn; ResultCRTMode; WriteLn (‘Це текстовий режим’); `ReadLn; SetGraphMode (GetGraphMode); WriteLn (‘Знову графічний режим’); ReadLn; CloseGraph; End; End. Приклад 5: Після ініціалізації графічного режиму виводить на екран рядок з іменем завантаженого драйверу, а також всі режими його роботи.
Uses GRAPH; Var a, b: integer; begin a:= Detect; InitGraph (a, b, ‘’); WriteLn (GetDriveName); For a:= 0 to GetMaxMode do WriteLn (GetModeName (a): 10); ReadLn; CloseGraph; End;
Приклад 6: Вивести на екран назви всіх адаптерів і діапазон можливих номерів режимів їх роботи.
Uses Graph; Var D, L, H: integer; Const N: array [1..11] of string [8] = (‘CGA’, ‘MCGA’, ‘EGA’; ‘EGA64’, ‘EGAMONO’, ‘IBM8514’; ‘HercMONO’, ‘ ATT400’, ‘VGA’; ‘PC3270’, ‘Помилка’); begin writeLn (‘ адаптер Мин. Макс.’); for D:=1 to 11 do begin GetModeRange (D, L, H); WriteLn (N [D], L: 7, H: 10); End; End.
Таким чином: а) керування графічним режимом забезпечується модуль GRAPH, який підключається стандартним способом: USES GRAPH; б) для ініціалізації графічного режиму використовують процедура InitGraph; в) завершує графічний режим процедура CloseGraph; г) структура графічної Паскаль-програми практично не відрізняється від стандартної структури; д) модуль GRAPH містить широкий набір процедур та функцій роботи з відеорежимами.
Побудови графічних об’єктів Побудова геометричних фігур Для побудови зображення у графічному режимі використовують систему координат, яка відрізняється від текстового режиму (екран представляється у вигляді прямокутного масиву символів і координати Х, У починаються з 1 … max значення). Відлік координат починається з верхнього лівого кута екрана з координатами (0, 0). При цьому екран представляється у вигляді прямокутного масиву адресуємих точок (пікселів). Для різних типів адаптерів та режимів кількість точок по вертикалі та горизонталі суттєво відрізняється. Для визначення максимальних значень координат екрану, в модулі GRAPH використовують функції:
GetMax X: integer; GetMax Y: integer.
Особливості: якщо при адресації точок вказуються значення координат, які перевищують максимальні, то операція ігнорується. Побудова графічного зображення починається з позначення початкової позиції. У текстовому режимі цю позицію позначає курсор, який розміщується за останнім символом і вказує на місце наступного символу. В графічних режимах відображаємого на екрані курсору не має, але є скритий поточний показчик СР (current pointer), який виконує аналогічні функції курсору текстового режиму.
В графічному режимі для переміщення СР використовують процедури: 1) Move To (x, y: integer) – переміщує поточний показчик СР в точку з координатами x, y; 2) Move Rel (dx, dy: integer) – переміщує СР на dx точок по горизонталі і на dy точок по вертикалі відносно останнього положення поточного показчика. Якщо dx, dy більше 0, то координати СР збільшуються; якщо менше 0 - зменшуються. Для визначення поточного розташування графічного курсору СР використовують функції:
GET X: integer; GET Y: integer;
які повертають значення поточних координат показчика. Приклад 1: позиціонування графічного курсору та визначення його координат:
Uses GRAPH; Var Driver, Mode: integer; Begin Driver:= Detect; InitGraph (Drive, Mode, ‘’); If GraphResult <> 0 then Begin WriteLn (‘ошибка’); Halt (1); End; Move To (GetMax X div 2, GetMax Y div); OutTextXY (GET X, GET Y, ‘курсор по центру’); MoveRel (-GET X div 2, -GET Y div 2); OutTextXY (‘курсор переміщений’); ReadLn; CloseGraph; End.
Установка кольору та стилю 1) процедура Set Color (Color: word); встановлює поточний колір для ліній та символів. Параметр Color позначає номер кольору від 0 до 15:
Таблиця 1
2)процедура SetBKColor (Color: word); встановлює колір фону, який визначається параметром Color. 3) процедура SetFillStyle (Fill, Color: word); встановлює стиль (тип і колір) заповнення фрагментів зображення. Геометричні побудови. 1) Відображення точки: В модулі Graph для відображення точки використовують процедуру: PutPixel (x, y: integer); x, y – координата точки; Color – її колір (значення беруть зі встановленої палітри). 2) Відображення ліній: а)Процедура: Line (x1, y1, x2, y2: integer); x1, y1, x2, y2 - координати початкової і кінцевої точок лінії. Лінія креслиться поточним стилем і поточним кольором. б) процедура: LineTo (x, y: integer); будує лінію від точки поточного розміщення показчика до точки зкоординатами (x,y). в) процедура: LineRel (dx, dy: integer); проводить відрізок від точки поточного розміщення на величину заданого приросту. г) процедура: SetLineStyle (Type, Pattern, Thich: word); встановлює стиль відображення ліній, де параметри – це відповідно тип, шаблон і товщина лінії. Тип лінії задається константою з таблиці 3:
Таблиця 3
Параметр Pattern тільки для ліній типу UserBitLn і може приймати значення від 1..65536, тобто 2 байта кожен біт (із 16 біт слова) може приймати значення 0 або 1 (піксель не світиться або світиться). Таким чином параметр Pattern задає відрізок ліній, довжиною 16 пікселів. Цей шаблон періодично повторюється по всій довжині ліній. Параметр Thich приймає 2 значення: Norm Width = 1 Thick WidTh = 3
|
||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-03-26; просмотров: 94; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.137.17 (0.02 с.) |