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

Побудова многокутників

многокутники можна малювати найрізноманітнішими способами, наприклад за допомогою процедур Line і LineTo. В Turbo Pascal знаходиться процедура DrawPoly, яка дозволяє будувати довільні многокутники за допомогою ліній поточного кольору, стилю і товщини. Вона має наступний синтаксис:

DrawPoly (NumPoint: WORD; VAR PolyPoint);

DrawPoly дозволяє відображати на екрані дисплея будь-яку ламану, задану сукупністю координат деякої множини точок. Це може бути як складна геометрична фігура, так і графік математичної функції, заданої в табличному вигляді. Параметр NumPoint – це кількість точок ламаної. В якості параметра PolyPoint задається змінна, тип її може бути довільним.

Побудова дуг, еліпсів і кіл

алгоритм побудови кривих досить складний для самостійної реалізації, тому практично у всіх випадках слід користуватися готовими процедурами модуля Graph.

Для зображення кола використовується процедура

Circle (X, Y: INTEGER; Radius: WORD);

Тут (X,Y) – координати центру кола, Radius – його радіус. Результатом роботи буде коло, якщо коефіцієнт стиску зображення відповідає встановленому BGI-драйвером для поточного графічного режиму. В протилежному випадку на екрані з’явиться еліпс, витягнутий по вертикалі (коли коефіцієнт стиску більший прийнятого по замовчуванню) чи по горизонталі (коли коефіцієнт стиску менший прийнятого по замовчуванню).

В ряді випадків, особливо для імітації об’ємних фігур, використовуються дуги. Їх можна накреслити за допомогою процедури

Arc (X, Y: INTEGER; StAngle; EndAngle; Radius: WORD);

де (X,Y) – центр кола дуги, StAngle і EndAngle – початковий і кінцевий кути, які відраховуються від горизонтальної осі проти часової стрілки, Radius – радіус. Очевидно, що якщо StAngle=0 і EndAngle=359, то накреслиться повне коло.

Для побудови еліптичних дуг призначена процедура

Ellipse (X, Y: INTEGER; StAngle, EndAngle: WORD; XR, YR: WORD);

де (X,Y) – центр еліпса в дисплейних координатах, XR і YR – горизонтальна і вертикальна осі. Дуга еліпса накреслюється поточним кольором від початкового кута StAngle до кінцевого кута EndAngle, так само як і в процедурі Arc.

Робота з текстом

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

Відображення рядків

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

OutText (TextString: STRING);

виводить на екран рядок тексту, починаючи з початкового положення СР. Очевидний недолік процедури а тому, що не можна вказати довільну точку початку виводу. Цей недолік можна обійти за допомогою MoveTo, але краще скористатися процедурою

OutTextXY (X, Y, Text);

де X, Y – координати точки початку виводу тексту, Text – константа чи змінна типу STRING.

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