p align="left">Procedure MoveRel(DX,DY: Integer); Тут DX,DY- прирости нових координат покажчика відповідно по горизонталі і вертикалі. Прирости задаються щодо того положення, яке займав покажчик до моменту звернення до процедури. Процедура ClearDevice. Очищає графічний екран. Після звернення до процедури покажчик встановлюється в лівий верхній кут екрану, а сам екран заповнюється кольором фону, заданим процедурою SetBkColor. Заголовок: Procedure ClearDevice; Процедура ClearViewPort. Очищає графічне вікно, а якщо вікно не визначено до цього моменту - весь екран. При очищенні вікно заповнюється кольором з номером 0 з поточної палітри. Покажчик переміщається в лівий верхній кут вікна. Заголовок: Procedure ClearViewPort; Процедура GetAspectRatio. Повертає два числа, дозволяючи оцінити співвідношення сторін екрану. Заголовок: Procedure GetAspectRatio(var X,Y: Word); Тут X, Y - змінні типу Word. Значення, що повертаються в цих змінних, дозволяють обчислити відношення сторін графічного екрану в пікселях. Знайдений з їх допомогою коефіцієнт може використовуватися при побудові правильних геометричних фігур, таких як кола, квадрати і т.п. Наприклад, якщо Ви хочете побудувати квадрат із стороною L пікселів по вертикалі, Ви повинні використовувати оператори GetAspectRatio (Xasp, Yasp); Rectangle(x1, y1, x1+L*round (Yasp/Xasp), y1+L); а якщо L визначає довжину квадрата по горизонталі, то використовується оператор Rectangle (x1,y1,x1+L,y1+L*round(Xasp/Yasp)); Процедура SetAspectRatio. Встановлює масштабний коефіцієнт відношення сторін графічного екрану. Заголовок: Procedure SetAspectRatio(X,Y: Word); Тут X, Y- встановлювані співвідношення сторін. Процедура SetActivePage. Робить активною вказану сторінку відеопам'яті. Заголовок: Procedure SetActivePage(PageNum: Word); Тут PageNum - номер сторінки. Процедура може використовуватися тільки з адаптерами, що підтримують багатосторінкову роботу (EGA, VGA і т.п.). Фактично процедура просто переадресує графічний висновок в іншу область відеопам'яті, проте виведення текстів за допомогою Write/WriteLn завжди здійснюється тільки на сторінку, яка є видимою в даний момент (активна сторінка може бути невидимою). Нумерація сторінок починається з нуля. Процедура SetVisualPage. Робить видимою сторінку з вказаним номером. Заголовок: Procedure SetVisualPAge(PageNum: Word); Тут PageNum - номер сторінки. Процедура може використовуватися тільки з адаптерами, що підтримують багатосторінкову роботу (EGA, VGA і т.п.). Нумерація сторінок починається з нуля. · Багатокутники Процедура Rectangle. Викреслює прямокутник з вказаними координатами кутів. Заголовок: Procedure Rectangle(X1,Y1,X2,Y2: Integer); Тут X1... Y2 - координати лівого верхнього (X1, Y1) і правого нижнього (Х2, Y2) кутів прямокутника. Прямокутник викреслюється з використанням поточного кольору і поточного стилю ліній. Процедура DrawPoly. Викреслює довільну ламану лінію, задану координатами точок зламу. Procedure DrawPoly(N: Word; var Points) Тут N - кількість точок зламу, включаючи обидві крайні крапки; Points - змінна типа PointType, що містить координати точок зламу. Координати точок зламу задаються парою значень типа Word: перше визначає горизонтальну, друге - вертикальну координати. Для них можна використовувати наступний певний в модулі тип: type PointType = record х, у : Word end; · Дуги, кола, еліпси Процедура Circle. Викреслює коло. Заголовок: Procedure Circle(X,Y: Integer; R: Word); Тут X, Y- координати центру; R - радіус в пікселях. Коло виводиться поточним кольором. Товщина лінії встановлюється поточним стилем, вид лінії завжди SolidLn (суцільна). Процедура викреслює правильне коло з урахуванням зміни лінійного розміру радіусу залежно від його напряму щодо сторін графічного екрану, тобто з урахуванням коефіцієнта GetAspectRatio. У зв'язку з цим параметр R визначає кількість пікселів в горизонтальному напрямі. Процедура Arc. Креслить дугу кола. Заголовок: Procedure Arc(X,Y: Integer; BegA,EndA,R: Word); Тут X, У - координати центру; BegA, EndA - відповідно початковий і кінцевий кути дуги; R - радіус. Кути відлічуються проти годинникової стрілки і вказуються в градусах. Нульовий кут відповідає горизонтальному напряму вектора зліва направо. Якщо задати значення початкового кута 0 і кінцевого - 359, то буде виведено повне коло. При викреслюванні дуги кола використовуються ті ж угоди щодо ліній і радіусу, що і в процедурі Circle. От як виглядають дві дуги: одна з кутами 0 і 90, друга 270 і 540 градусів (мал. 1): Мал.1 Ілюстрація процедури Arc Процедура GetArcCoords. Повертає координати трьох крапок: центру, початку і кінця дуги. Заголовок: Procedure GetArcCoords(var Coords: ArcCoordsType); Тут Coords - змінна типа ArcCoordsType, в якій процедура повертає координати центру, початку і кінця дуги. Тип ArcCoordsType визначений в модулі Graph таким чином: type ArcCoordsType = record X,Y : Integer; {Координати центру} Xstart,Ystart: Integer; {Початок дуги} Xend,Yend : Integer; {Кінець дуги} end; Процедура Ellipse. Викреслює еліпсну дугу. Заголовок: Procedure Ellipse(X,Y: Integer; BegA,EndA,RX,RY: Word); Тут X, Y - координати центру; BegA, EndA - відповідно початковий і кінцевий кути дуги; RX, RY- горизонтальний і вертикальний радіуси еліпса в пікселях. При викреслюванні дуги еліпса використовуються ті ж угоди щодо ліній, що і в процедурі Circle, і ті ж угоди щодо кутів, що і в процедурі Arc. Якщо радіуси погоджувати з урахуванням масштабного коефіцієнта GetAspectRatio, буде викреслено правильне коло. · Фарби, палітри, заповнення Процедура SetColor. Встановлює поточний колір для ліній і символів, що виводяться. Заголовок: Procedure SetColor(Color: Word); Тут Color - поточний колір. В модулі Graph визначені точно такі ж константи для завдання кольору, як і в модулі СИГ . Функція GetColor. Повертає значення типа Word, що містить код поточного кольору. Заголовок: Function GetColor: Word; Функція GetMaxColor. Повертає значення типу Word, що містить максимальний доступний код кольору, який можна використовувати для звернення до SetColor. Заголовок: Function GetMaxColor: Word; Процедура SetBkColor. Встановлює колір фону. Заголовок: Procedure SetBkColor(Color: Word); Тут Color - колір фону. На відміну від текстового режиму, в якому колір фону може бути тільки темного відтінку, в графічному режимі він може бути будь-ким. Установка нового кольору фону негайно змінює колір графічного екрану. Це означає, що не можна створити зображення, дві ділянки якого мали б різний колір фону. Для CGA -адаптера в режимі високого розширення установка кольору фону змінює колір активних пікселів. Після заміни кольору фону на будь-який, відмінний від 0 (Black) колір, Ви не зможете більш використовувати колір 0 як чорний, він замінюватиметься на колір фону, оскільки процедури модуля Graph інтерпретують колір з номером 0 як колір фону. Це означає, зокрема, що Ви вже не зможете повернути фону чорний колір! Функція GetBkColor. Повертає значення типу Word, що містить поточний колір фону. Заголовок: Function GetBkColor: Word; Процедура SetPalette. Замінює один з кольорів палітри на новий колір. Заголовок: Procedure SetPalette(N: Word; Color: Shortlnt); Тут N - номер кольору в палітрі; Color - номер знов встановлюваного кольору. Дана процедура може працювати тільки з адаптерами EGA або VGA. Вона не повинна використовуватися з IBM8514 або 256-кольоровим варіантом VGA - для цих адаптерів призначена особлива процедура SetRGBPalette (див. нижче). Первинне розміщення кольорів в палітрах EGA/VGA відповідає послідовності їх опису константами Black....White, тобто колір з індексом 0 - чорний, 1 - синій, 2 - зелений і т.д. Після звернення до процедури всі фрагменти зображення, виконані кольором з індексом N з палітри кольорів, одержать колір Color. Наприклад, якщо виконати оператор SetPalette(2,White); то колір з індексом 2 (первинно це - бірюзовий колір Cyan) буде замінений на білий. Колір з індексом 0 ототожнюється з кольором фону і може змінюватися разом з будь-яким іншим кольором. Процедура GetPalette. Повертає розмір і кольори поточної палітри. Заголовок: Procedure GetPalette(var Palettelnfo: PaletteType); Тут Palettelnfo - змінна типа PaletteType, що повертає розмір і кольори палітри. В модулі Graph визначена константа const MaxColors =15; і тип type PaletteType = record Size : Word; {Кількість кольорів в палітрі} Colors : array [0..MaxColors] Shortlnt {Номери вхідних в палітру кольорів} end; Процедура SetAllPalette. Змінює одночасно декілька кольорів палітри. Заголовок процедури: Procedure SetAllPalette(var Palette); Параметр Palette в заголовку процедури описаний як параметр, що не типізується. Перший байт цього параметра повинен містити довжину N палітри, решта N байтів - номери знов встановлюваних кольорів в діапазоні від -1 до MaxColors. Код -1 означає, що відповідний колір початкової палітри не міняється. Функція GetPaletteSize. Повертає значення типу Integer, що містить розмір палітри (максимальна кількість доступних кольорів). Заголовок: Function GetPaletteSize: Integer; Процедура GetDefaultPalette. Повертає структуру палітри, встановлювану за змовчуванням (в режимі автонастройки). Заголовок: Procedure GetDefaultPalette(var Palette: PaletteType); Тут Palette - змінна типа PaletteType (див. процедуру GetPalette), в якій повертаються розмір і кольори палітри. Процедура SetFillStyle. Встановлює стиль (тип і колір) заповнення. Заголовок: Procedure SetFillStyle(Fill,Color: Word); Тут Fill - тип заповнення; Color - колір заповнення. За допомогою заповнення можна покривати які-небудь фрагменти зображення узором, що періодично повторюється. Для вказівки типу заповнення використовуються наступні заздалегідь певні константи: const EmptyFill = 0;{Заповнення фоном (узор відсутній)} SolidFill = 1;{Суцільне заповнення} LineFill = 2;{Заповнення -------} LtSlashFill = 3;{Заповнення ///////} SlashFill = 4;{Заповнення потовщеними ///} BkSlashFill = 5;{Заповнення потовщеними \\\} LtBkSlashFill = 6;{Заповнення \\\\\\\} HatchFill = 7;{Заповнення +++++++} XHatchFill = 8;{Заповнення ххххххх} InterleaveFill= 9;{Заповнення прямокутну клітинку} WideDotFill = 10;{Заповнення рідкісними крапками} CloseDotFill = 11;{Заповнення частими крапками} UserFill = 12;{Узор визначається користувачем} Процедура SetFillPattern. Встановлює зразок малюнка і колір штрихування. Заголовок: Procedure SetFillPattern(Pattern: FillPatternType;Color: Word);
Страницы: 1, 2, 3
|