p>
{процедура ініціалізації}
Var
x: Integer;
BEGIN
Grlrtit;
{ініціалізація графіки}
X: = GetMaxX;
{дозвіл екрана по X}
SetLineStyle (DottedLn, 0, NormWidth);
Line (0, 10, x, 10);
{тонка суцільна лінія}
SetLineStyle (CenterLn, 0, NormWidth);
Line (0, 20, x, 20);
{штрихпунктирна лінія}
SetLineStyle (UserBitLn, $ CCCC, NonriWidth);
Line {0, 30, x, 30);
{лінія 1100110011001100}
SetLineStyle (UserBitLn, $ B38F, NormWidth);
Line (0, 40, x, 40);
{лінія 1011001110001111}
SetLineStyle (UserBitLn, $ 4C70, NormWidth);
Line (0, 50, x, 50);
{лінія 0100110001110000}
ReadLn;
{пауза до натискання введення}
SetLineStyle (DottedLn, 0, ThickWidth);
Line (0. 10, x, 10);
{товста суцільна лінія}
SetLineStyle (CenterLn, 0, ThickWidth);
Line (0, 20, x, 20);
{штрих-пунктирна лінія}
SetLineStyle (UserBitLn, $ Сссс, ThickWidth);
Line (0, 30, x, 30);
{лінія 1100110011001100}
SetLineStyle (UserBitLn, $ B38F, ThickWidth);
Line (0, 40, x, 40);
{лінія 1011001110001111}
SetLineStylef UserBitLn, $ 4С70, ThickWidth);
Line (0, 50, x, 50);
{лінія 0100110001110000}
ReadLn;
{пауза до натискання введення}
CloseGraph
{закриття графіки}
END.
У цьому прикладі на екрані монітора малюється п'ять горизонтальних ліній різної товщини: дві намальовані з системного шаблоном, а три - за шаблоном, заданому нами.
Призначення стилю ліній впливає на дію всіх процедур, що виводять на екран відрізки або фігури, з них складаються. Процедури, що виводять на екран дуги, враховують тільки товщину, задану в стилі.
В
Коефіцієнт стиснення зображення
Якщо намалювати квадрат відрізками, наприклад
MoveTo (100, 100);
LineRel (20, 0); LineRel (0, 20);
LineRel (-20, 0); LineRel (0, -20);
то на екрані, швидше за все, виникне стиснене прямокутник. Схожа картина спостерігатиметься, якщо В«вручнуВ» намалювати коло з допомогою відрізків прямих або точок: вийде еліпс. Це пов'язано з тим, що відношення висоти екрану до ширини не дорівнює відношенню його роздільної здатності по вертикалі до роздільної здатності по горизонталі. Для обліку цього нерівності в графічному стандарті BGI вводиться спеціальний показник, званий коефіцієнтом стиснення зображення (aspect ratio). Його значення можуть мати широкий діапазон. Наприклад, для ПК IBM PC/XT/AT стандартні монітори мають відношення висоти екрану до його ширини, рівне 0,75. При цьому роздільна здатність адаптерів коливається від 640x200 для CGA до 1024x768 IBM8514, і ставлення GetMaxY до GetMaxX може мінятися від 0,3125 (640x200) до 0,75 (640x480, 1024x768). Таким чином, на одиницю довжини осі екрану доводиться різну кількість пікселів по горизонталі і вертикалі, а оскільки всі операції проводяться з пікселями, то в результаті замість окружності може вийти еліпс, горизонтальна піввісь якого дорівнює радіусу, а вертикальна - радіусу, поділеній на коефіцієнт стиснення зображення. p> У модулі Graph є дві процедури, які допомагають усунути незручність. Перша з них
GetAspectRatio (VAR А, В: Word