стеми координат дисплея. Іншими словами, ми отримаємо локальних систем координат пристрою. Якщо параметри процедудури задані неправильно, то функція GraphResult поверне помилку grError (-11).
Призначення графічного вікна можна використовувати для переміщення початку системи координат. Так, якщо задати вікно викликом
SetViewPort ( GetMaxX div 2, GetMaxY b> div 2, GetMaxX , GetMaxY , ClipOff );
то отримаємо систему координат з початком в центрі екрану. При цьому стане В«видимоїВ» адресація негативних координат. Графічне вікно не міняє масштабу системи координат, а лише вибирає систему відліку адресованих пікселів. Для опитування поточних параметрів графічного вікна служить процедура
GetViewSettings {VAR ViewSettings : ViewPortType ) b>
Якщо скористатися нею відразу ж після ініціалізації графічного режиму, то виявиться, що графічним вікном є весь екран. Це говорить про те, що для системи байдуже, яке графічний пристрій відображає результат, оскільки графічне вікно представляє собою деякий універсальний інтерфейс між графічною програмною системою і графічним пристроєм виводу.
Для очищення робочого простору графічного вікна в модулі Graph існує спеціальна процедура
ClearViewPort
Вона працює таким чином:
1. встановлює колір заповнення рівний поточному кольором фону;
2. викликає процедуру Ваг з тими ж значеннями координат; що і у процедури SetViewPort, викликаної перед цим;
3. переміщує поточний покажчик у точку (0,0). p> { Ілюстрація дейсвія режиму "відсічення"}
Program ClipOn_Off;
Uses Graph;
Var d, e, r: integer;
Const
x11 = 0; y11 = 40; x12 = 120; y12 = 85;
x21 = 200; y21 = y11; x22 = 320; y22 = y12;
Begin
d: = Detect; InitGraph (d, r,'');
e: = GraphResult;
if e <> grOk then
writeln (GraphErrorMsg (e))
else
begin
writeln ('ClipOn: ClipOff');
Rectangle (x11, y11, x12, y12);
Rectangle (x21, y21, x22, y22);
SetViewPort (x11, y11, x12, y12, ClipOn);
Circle (20,20,60);
SetViewPort (x21, y21, x22, y22, ClipOff);
Circle (20,20,60);
readln;
CloseGraph;
end
End.
В
Виведення тексту
Виведення тексту в графічному режимі має ряд відмінностей від подібних дій в текстовому режимі. Основна відмінність полягає в тому, що всі дії виробляються тільки із строковими константами і змінними. Вся числова інформація повинна попередньо перетворюватися в строкову процедурою Str. Інша відмінність - у те, що можна використовувати різні шрифти.
В
Вибір шрифту і стилю
У комплектах поставки пакета Турбо Паскаль є файли з розширенням. CHR. Це набір штрихових шрифтів, які можуть бути використані для виведення інформації. Оскільки вони побудовані не матричним способом (як зроблені стандартні шрифти для текстового режиму), а векторним, стають можливими маніпуляції розмірами шрифтів без втрати якості їх зображення.
Всього з пакетом Турбо Паскаль поставляється чотири шрифту (хоча можна, використовуючи окремий спеціальний пакет, самостійно розширити їх набір). Крім того, доступний системний матричний шрифт 8x8 для графічних режимів (завжди доступні символи з ASCII-кодами від 0 до 127 і символи з кодами від 128 до 255 за умови, що їх матриці завантажені в пам'ять ПЕОМ). Для позначення цих п'яти шрифтів введені константи:
CONST
В
DefaultFont
= 0;
{матричний шрифт 8x8 (по замовчуванням)}
TriplexFont
= 1;
{напівжирний шрифт}
SmallFont
= 2;
{світлий шрифт (тонке накреслення)}
SansSerifFont
= 3;
{книжкова гарнітура (рубаний шрифт)}
GothicFont
= 4;
{готичний шрифт}
DefaultFont - це матричний шрифт 8x8. Якщо не вживати ніяких дій по зміні шрифту, то буде прийнятий саме він.
Активізація будь-якого з названих шрифтів здійснюється процедурою
SetTextStyle (Font, Direction...