Графічні засоби мови Паскаль

1. PROCEDURE InitGraph (VAR GraphDriver, GraphMode: Integer; PathToDriver: STRING); - ця процедура ініціалізує графічний режим, тобто перемикає монітор з текстового режиму в графічний. Будь-які графічні процедури і функції можуть бути виконані тільки в графічному режимі. Перед викликом InitGraph необхідно першому аргументу присвоїти значення DETECT (константа, описана в модулі Graph). PathToDriver - це рядок, що містить шлях до файлу - графічного драйверу, для моніторів від EGA до SVGA це файл EGAVGA.BGI. Графічні драйвери завжди містяться в директорії, де знаходиться сам Turbo Pascal (зазвичай в піддиректорії BGI). Ви можете або відшукати на диску цей файл і в програмі правильно поставити шлях до нього, наприклад, 'D: \ TP \ BGI', або мати цей файл у вашій робочій директорії, тоді шлях задається символом нового рядка. Якщо ні те, ні інше не зроблено, графічний режим не буде инициализирован.

2. PROCEDURE CloseGraph; - закриває графічний режим.

3. FUNCTION GetMaxX. Integer; .

4. FUNCTION GetMaxY. Integer; - повертають відповідно номер самого правого і самого нижнього пікселя екрану. Пікселі нумеруються від 0 до GetMaxX зліва направо і від 0 до GetMaxY зверху вниз. Дозвіл графічного екрану залежить від типу монітора та від обраного графічного режиму. Наприклад, для монітора VGA максимальна роздільна здатність 640 '480, тобто GetMaxX поверне 639, а GetMaxY - 479.

5. PROCEDURE SetBkColor (Color: Word); - встановлює фоновий колір, після її виконання весь екран буде зафарбований в колір Color. Колірна палітра також залежить від типу монітора та обраного графічного режиму, але стандартна палітра для кольорового монітора включає 16 кольорів:

0 - Black 1 - Blue 2 - Green 3 - Cyan

4 - Red 5 - Magenta 6 - Brown 7 - LightGray

8 - DarkGray 9 - LightBlue 10 - LightGreen 11 - LightCyan

12 - LightRed 13 - LightMagenta 14 - Yellow 15 - White

Наведені назви - це імена констант, описаних в модулі Graph; ви можете використовувати їх або номери кольорів.

6. PROCEDURE SetViewPort (x1, y1, x2, y2: Integer; Clip: Boolean); - встановлює графічне вікно. x1, y1, x2, y2 - координати відповідно лівого верхнього і правого нижнього кутів вікна. Після виконання цієї процедури пікселі будуть відраховуватися від лівого верхнього кута вікна. Логічний параметр Clip визначає, чи слід усікати зображення на кордонах вікна. Виконувати цю процедуру зовсім не обов'язково, за замовчуванням графічне вікно займає весь екран.

7. PROCEDURE ClearDevice; - зафарбовує екран фоновим кольором.

8. PROCEDURE PutPixel (X, Y: Integer; Color: Word); - зафарбовує піксель з координатами X, Y кольором Color.

9. FUNCTION GetPixel (X, Y: Integer): Word; - повертає колір пікселя з координатами X, Y.

10. PROCEDURE SetColor (Color. Word); - встановлює колір ліній, всі виведені на екран лінії будуть мати колір Color до виконання наступної процедури SetColor.

11. PROCEDURE SetLineStyle (LineStyle, Pattern, Thickness: Word); - встановлює стиль ліній, діє для всіх виведених ліній до виконання SetLineStyle з іншими аргументами. Параметр LineStyle може набувати таких значень:

0 - SolidLn - суцільна лінія;

1 - DottedLn - пунктирна лінія;

2 - CenterLn - штрих-пунктирна лінія;

3 - DashedLn - штрихова лінія;

4 - UserBitLn - лінія, що задається програмістом.

Якщо стиль лінії - 4, то форма лінії визначається другим параметром процедури - Pattern. Товщина лінії може приймати всього два значення:

1 - NormWidth - тонка лінія;

3 - ThickWidth - жирна лінія.

12. PROCEDURE Line (x 1, y1, x2, y2: Integer); - малює відрізок прямої від точки з координатами x1, y1 до точки x2, y2.

13. PROCEDURE MoveTo (x, y: Integer); - переміщує графічний курсор в точку x, y. Графічний курсор не видний на екрані, але ряд процедур використовує поточне положення графічного курсора.

14. PROCEDURE LineTo (x, y: Integer); - малює відрізок від поточної точки (поточного положення графічного курсора) до точки x, y.

15. PROCEDURE MoveRel (Dx, Dy: Integer); - переміщує графічний курсор на Dx по горизонталі і на Dy по вертикалі.

16. PROCEDURE LineRel (Dx, Dy: Integer); - малює відрізок від поточної точки до точки із зсувом Dx, Dy.

17. FUNCTION GetX: Integer; і

18. FUNCTION GetY: Integer; - повертають поточні координати графічного курсору.

19. PROCEDURE Rectangle (x1, y1, x2, y2: Integer); - малює прямокутник, x1, y1 - координати лівого верхнього кута, x2, y2 - координати правого нижнього кута.

20. PROCEDURE Circle (X, Y: Integer; R: Word); - малює коло радіуса R з центром в точці X, Y.

21. PROCEDURE Ellipse (X, Y: Integer; f1, f2, Rx, Ry: Word); - малює дугу еліпса з півосями Rx, Ry і центром в точці X, Y від кута f1 до кута f2 (кути задаються в градусах).

22. PROCEDURE Arc (X, Y: Integer; f1, f2, R: Word); - малює дугу кола радіуса R з центром в точці X, Y від кута f1 до кута f2.

23. PROCEDURE SetFillStyle (Pattern, Color: Word); - встановлює спосіб зафарбовування. Параметр Pattern може приймати такі значення: 0 - EmptyFill - НЕ зафарбовувати, 1 - SolidFill - суцільна зафарбування, 2 - LineFill, 3 - LtSlashFill,

4 - SlashFill, 5 - BkSlashFill, 6 - LtBkSlashFill, 7 - HatchFill, 8 - XHatchFill,

9 - InterleaveFill, 10 - WideDotFill, 11 - CloseDotFill.

24. PROCEDURE Bar (x1, y1, x2, y2: Integer); - малює зафарбований прямокутник, використовуючи спосіб зафарбовування, встановлений процедурою SetFillStyle.

25. PROCEDURE FillEllipse (X, Y: Integer; Rx, Ry: Word); - малює зафарбований еліпс.

26. PROCEDURE Sector (X, Y: Integer; f1, f2, Rx, Ry: Word); - малює зафарбований еліптичний сектор.

27. PROCEDURE PieSlice (X, Y: Integer; f1, f2, R: Word); - малює зафарбований круговий сектор.

29. PROCEDURE SetTextStyle (Font, Direction, Size: Word); - встановлює спосіб виведення тексту. Font - номер графічного шрифту, який приймає значення 0 - DefaultFont. 1 - TriplexFont. 2 - SmallFont. 3 - SansSerifFont.

4 - GothicFont. Нульовий шрифт - стандартний і підтримується завжди. Якщо ви використовуєте штрихові шрифти з 1-го по 4-й, то повинні мати на вашій робочій директорії шрифтові файли TRIP.CHR. LITT.CHR. SANS.CHR. GOTH.CHR (ті з них, які вам потрібні). Параметр Direction визначає напрямок виведення тексту (зліва направо або зверху вниз) і приймає значення 0 - HorizDir, 1 - VertDir. Параметр Size визначає розмір символів і змінюється від 1 до 10.

30. PROCEDURE OutText (S: STRING); - виводить текст на графічний екран, використовуючи поточні координати графічного курсору (процедура WRITE [LN] в графічному режимі не працює).

31. PROCEDURE OutTextXY (X, Y: Integer; S: STRING); - виводить текст на графічний екран, використовуючи координати X, Y.

32. PROCEDURE SetTextJustify (Horiz, Vert: Word); - встановлює спосіб позиціонування тексту. Параметр Horiz може приймати значення:

0 - LeftText - по лівому краю,

1 - CenterText - по середині тексту,

2 - RightText - по правому краю.

Параметр Vert може приймати значення:

0 - BottomText - по нижньому краю,

1 - CenterText - по середині тексту,

2 - TopText - по верхньому краю.

Не нехтуйте цією процедурою, якщо хочете акуратно вивести підписи до вашого малюнку.

33. FUNCTION TextWidth (S: STRING): Word; - повертає довжину тексту в пікселах.

34. FUNCTION TextHeight (S: STRING): Word; - повертає висоту тексту в пікселах.

36. PROCEDURE SetActivePage (Page. Word); - встановлює поточну графічну сторінку, куди буде направлений весь висновок. Дві останні процедури можуть бути використані для створення мультиплікації.

0 - 640 '200, 4 сторінки,

1 - 640 '350, 2 сторінки,

2 - 640 '480, 1 сторінка.

Іменовані константи для графічних мод також описані в модулі Graph; так, для перерахованих вище мод це: VGALo, VGAMed, VGAHi.

38. FUNCTION GetGraphMode. Integer; - повертає встановлену графічну моду.

39. PROCEDURE RestoreCrtMode; - встановлює текстовий режим монітора. Ця процедура спільно з SetGraphMode може використовуватися для налагодження графічних програм. Припустимо, що ми написали, але поки ще не налагодили графічну програму. Ми хочемо вивести будь-яку інформацію, яка обчислюється програмою, на екран, але використовувати для виведення процедуру OutText досить важко. Організуємо нашу програму в такий спосіб:

40. FUNCTION GraphResult: Integer; - повертає код завершення останньої графічної операції; якщо цей код дорівнює grOK (= 0), то операція виконана успішно, в іншому випадку сталася помилка.

Щоб продемонструвати деякі з графічних можливостей мови Паскаль, напишемо програму, що малює графік функції cos2x на відрізку [0,6p].

CONST ScreenColor = DarkGray;

Схожі статті