Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема Graph.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
176 Кб
Скачать
☆

6. Переміщення поточного вказівника та малювання точки.

Поточний вказівник (СР) переміщають наступні процедури: InitGraph (в точку(0,0)), МоvеТо, MoveRel, LineTo, LineRel, OutText, SetGгaphMode (в точку(0,0)).

Процедура MoveRel(Dx, Dy : integer). Зміщує поточний вказівник (СР) на Dx пікселів по осі х і на Dy пікселів по осі у від пікселя, у якому знаходиться поточний вказівник. Якщо поточний вказівник знаходився в точці з координатами (х0, у0), то процедура переміщає його в точку з координатами (х1, у1), де xl=x0+Dx, уl=у0+Dу. Відносні команди переміщення і малювання корисні при малюванні різних об'єктів на екрані, у яких початкова точка може бути змінена, наприклад, щоб намалювати ту ж фігуру в іншому місці екрана.

Процедура МоvеТо(х, у : integer). Переміщує поточний графічний покажчик (СР) у точку з координатами (х,у).

Процедура PutPixel(x,y : integer; Color : word). Малює точку з координатами (х,у), колір якої задається параметром Color.

7. Малювання ліній.

Лінії малюються за допомогою процедур Line, LineRel та LineTo. Лінії малюються кольором, який на даний момент встановлено поточним процедурою SetColor чи за замовчуванням. Товщина і тип лінії задаються процедурою SetLineStyle.

Процедура SetLineStyle(Typ : word; Z: word; Т : word). Значення параметра Тур задає тип рядка, Z - зразок лінії у випадку, коли значення параметру Тур дорівнює UserBitlln (4), параметр Т задає товщину лінії. Процедура встановлює поточну товщину і тип лінії. Процедура впливає на всі типи ліній, що малюються процедурами Line, LineTo, RecTangle, DrawPoly, Аrс, Circle тощо. Можна малювати неперервні лінії, пунктирні лінії, лінії, що складаються з крапок або з крапок і тире. Якщо в процедурі SetLineStyle задаються некоректні параметри, то в цьому випадку при звертанні функція GraphResult буде повертати код помилки -11 (grError) і поточні установки залишаться незміненими. Для типів ліній в модулі Graph описано наступні константи:

const

SolidLn =0; { неперервна лінія}

DottedLn = 1; { лінія з крапок }

CenterLn = 2; { лінія з крапок і тире}

DashedLn = 3; { пунктирна лінія }

UserBitLn = 4; { тип, обумовлений кориcтyвачем }

Щоб задавати товщину ліній, в модулі Graph існують наступні константи:

NormWidth = 1; {нормальна товщина}

ThickWidth = 3; {потовщена лінія}

Коли значення параметра Тур дорівнює UserBitLn, процедура LineStyle формує тип лінії у відповідності до послідовності одиничок і нулів у двійковому представленні параметра Z. Послідовність $FFFF (всі одиниці) формує неперервну лінію, $0000 - невидиму лінію. Контур фігури такої лінії не видний, проте таку фігуру можна зафарбувати. Параметр Z задає тип лінії тільки у випадку, коли значення параметра Тур дорівнює UserBitLn (4) і ігнорується у всіх інших випадках.

Процедура Line(x1, у1, x2, у2 : integer). Малює пряму лінію з точки з координатами (х1,у1) до точки (х2,у2). Розташування поточного вказівника не змінюється.

Процедура LineRel(Dx,Dy : integer). Малює пряму з точки з координатами (х0, у0), на яку вказує поточний вказівник (СР), до точки з координатами (х1, у1), де х1=х0+Dх, y1=y0+Dy.

Процедура LineTo(x, у : integer). Малює пряму лінію з точки з координатами (х0, у0), на яку вказує поточний вказівник (СР), до точки з координатами (х, у). Використовується тоді, коли поточний вказівник знаходиться в одному з кінців прямої. Після виконання цієї процедури поточний вказівник переміщується у точку (х,у).

Послідовність операторів

МоvеТо(100,100);

LineTo(200,200);

Еквівалентна оператору

Line( 100, 100,200,200);