Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Група процедур та функцій управління режимами роботи графічного адаптераСодержание книги
Поиск на нашем сайте 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; просмотров: 152; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |