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

Відображення точки на екрані

які б зображення не виводилися на екран, всі вони побудовані з точок. В загальному кажучи, для того щоб створити зображення довільного ступеня складності, достатньо мати тільки засіб побудови точки визначеного кольору в потрібному місці екрану. В модулі Graph для відображення точки використовується процедура

PUTPixel (X, Y: INTEGER; Color: WORD);

де X і Y – екрані координати точки, Color – її колір. Можливі значення Color беруться з встановленої палітри.

Визначення параметрів пікселів. Turbo Pascal дозволяє організувати прямий доступ до кожного пікселю екрану. Робить це функція

GetPixel (X, Y: INTEGER): WORD;

яка визначає номер кольору пікселю з координатами (X,Y). Звичайно номер кольору лежить в діапазоні від 0 до 15, в поверненому функцією значені значущим являється тільки молодший байт.

Відображення відрізків прямих ліній

Процедура виводу відрізка прямої на екран (в поточному кольорі і стилі) визначена наступним чином:

Line (X1, Y1, X2, Y2: INTEGER);

В ній задаються координати початкової та кінцевої точок лінії.

Для побудови відрізків застосовуються іще дві процедури: LineTo і LineRel. Процедура LineTo(X,Y) будує відрізок з точки поточного положення вказівника то точки з координатами (X,Y). Процедура LineRel(dX, dY) проводить відрізок від поточного положення вказівника до точки (CPX+dX, CPY+dY), де CPX і CPY – поточні координати СР.

Turbo Pascal дозволяє креслити лінії найрізноманітніших стилів: тонкі, широкі, штрихові, пунктирні і т. д. Установка стилю проводиться процедурою

SetLineStyle (LineStyle: WORD; Patter: WORD; Thickness: WORD);

Параметром LineStyle задається тип рядка, Patter – шаблон, Thickness – товщина лінії.

Управління режимом відображення ліній на екран. При малюванні ліній на екрані можна назначити режим порозрядного сполучення зображень. Від нього залежить, буде чи стерта при накладанні двох точок „нижня”, і яким способом можна видалити „верхнє” зображення з екрану. Управляючи цим режимом, можна отримати складний відео ефект. Сам режим задається процедурою

SetWriteMode (Mode: INTEGER);

Аргумент Mode може приймати одне з двох значень. Якщо Mode=0, то при „ накладанні” пікселю, який належить відображеній лінії, на „попередній” даному пікселю присвоюється поточне значення кольору. Таким чином, відображена лінія буде мати заданий колір. Якщо Mode=1, то код кольору пікселів, які утворюють лінію, вираховується як результат операції виключного ЧИ над кодом поточного кольору і кодом кольору пікселю на екрані, через які проходить лінія.

Побудова прямокутників

Для побудови прямокутників і паралелограмів використовуються декілька процедур. Перша з них – процедура побудови прямокутника на площині:

Rectangle (X1, Y1, X2, Y2: INTEGER);

де X1, Y1 – координати лівого верхнього кута, X2, Y2 – координати правого нижнього кута прямокутника. Це дуже корисна процедура, з її допомогою можна легко побудувати діаграму для візуального аналізу даних. Область всередині прямокутника не замальовується і співпадає з кольором фону.

Більш ефектні прямокутники можна будувати за допомогою процедури

Bar (X1, Y1, X2, Y2: INTEGER);

Вона малює прямокутник, внутрішня область якого залита по поточному шаблону. Дана процедура звичайно використовується в діловій графіці для побудови стовпових діаграм. Параметри (X1,Y1),(X2,Y2) – координати верхнього лівого і правого нижнього кутів прямокутника. Іще більше наглядне представлення інформації під час малюванні діаграм дозволяє отримати процедура

Bar3D (X1, Y1, X2, Y2: INTEGER; D3: WORD; Top: BOOLEAN);

За її допомогою можна відобразити паралелепіпед, „лицева сторона” якого заливається по поточному шаблону, а глибина задається в пікселях параметром D3. Параметр Top задає режим верхньої площини: True – відображати, False – не відображати. Цей параметр потрібен для малювання стовпців, розташованих „один на одному”. В модулі Graph визначені дві константи для цієї процедури:

CONST

TopOn = TRUE; {верхня площина відображається}

TopOff = FALSE; {верхня площина не відображається}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]