Для використання графічних можливостей Турбо Паскаля необхідно в блоці опису uses підключити графічний модуль Graph . Модуль містить набір графічних функцій і процедур, основні з яких розглянуті нижче.
В
Графічні процедури
Arc (x, y: integer; St, En, R: word); {Малювання дуги, де x, y - коорд. центру дуги, R - радіус, St, En - поч. і кінцевий кути. } br/>В
ClearDevice ; {очищення екрана}
Circle (x, y: integer; R: word); {Коло радіуса R
cцентром в точці ( x, y) }
CloseGraph ; {закриття графіки}
InitGraph (gd, gm: integer; Path: string); {ініціалізація графіки, де
gd - графічний драйвер,
gm - графічний режим,
Path - шлях розміщення файлу
з розширенням. bgi . } p> Line (x1, y1, x2, y2: integer); {малювання лінії, що проходить через дві точки:
з координатами ( x1, y1) і (x2, y2) }
LineRel (dx, dy: integer); {Малювання лінії: dx, dy - прирости
координат до координат поточної
позиції курсору}
В
LineTo (x, y: integer); {малювання лінії, що проходить через поточну
позицію курсору і точку з координатами ( x, y )}
Moveto (x, y: integer); {завдання координат поточної точки}
OutText (T: string); {висновок тексту в поточну точку}
OutTextXY (x, y: integer; T: string); {Виведення в точку з координатами х, у }
Rectangle (x1, y1, x2, y2: integer); {Малювання прямокутника: ( x1, y1) і (x2, y2) - координати протилежних вершин}
PutPixel (x, y: integer; c: word); {Виводить точку з координатами ( х, у) кольором з }
В В
Графічні функції
GetMaxX - визначає максимальний розмір екрану по осі x.
GetMaxY - визначає максимальний розмір екрану по осі y.
GetX - координата поточної позиції курсору по осі x.
GetY - координата поточної позиції курсору по осі y.
Машинні координати.
Початок машинної системи координат, напрям осей, а також максимальні значення координат монітора показані на малюнку
В
На малюнку наведена також машинна (x m , y m ) і фізична (x, y) системи координат. Для зображення на екрані точки з фізичними координатами (x, y) необхідно визначити її машинні координати (x m , y m ). Розрахункові формули мають такий вигляд (спробуйте самостійно отримати ці формули):
x m = x 0 + x * M x,
y m = y 0 -y * M y ,
де M x , M y -масштаби відповідно по осях x і y, які показують число пікселів в одній фізичної одиниці,
x, y - фізичні координати точки,
x m , y m - машинні координати точки,
x 0 , y 0 - машинні координати початку фізичної системи координат.
Приклад. Намалювати через весь екран горизонтальну і вертикальну лінії, що перетинаються в центрі монітора.
Етапи розробки програми зведені в таблицю.
Таблиця
N
Етапи програмування
Виконання
1. /Td>
Постановка завдання
Намалювати через весь екран горизонтальну і вертикальну лінії, перетинаються в центрі монітора. /Td>
2. /Td>
Математичний опис
Зобразимо вигляд екрану із зазначенням координат
необхідних ліній
В
3. /Td>
Розробка структограмми
В
4. /Td>
Написання програми
Program P5;
Uses graph; { підключення граф. модуля}
Var gd, gm: integer;
Begin
gd: = detect; { визначення граф. драйвера }
InitGraph (gd, gm, ''); { ініціалізація
графіки }
Line (0, round (GetMaxY/2), GetMaxX,
Round (GetMaxY/2)); {гориз. лін. } p> Line (round (GetMaxX/2), 0, Round (GetMaxX/2), GetMaxY);
{вертик. лін. } p> Readln; { порожній введення }
CloseGraph; {закриття графіки}
End.
5. /Td>
...