p align="justify"> Процедура Rectangle (Xl, Yl, X2, Y2: integer); будує зображення прямокутника на площині. Тут XI, Y1 - координати лівого верхнього кута, X2, Y2 - координати правого нижнього кута прямокутника. При цьому використовується поточний колір (SetColOf) і стиль лінії (SetLineStyle). Область усередині прямокутника НЕ ??зафарбована і збігається за кольором з фоном.
Процедура Bar (Xl, Yl, X2, Y2: integer); дозволяє будувати більш ефектні прямокутники. Вона малює прямокутник, внутрішня область якого залита за поточним шаблоном. Зазвичай використовується в діловій графіці для побудови стовпчикові діаграм, а також для «зафарбовування» графічного вікна, щоб фон графічного вікна не зливався із загальним тлом екрана.
Розглянемо, як виробляти «заливку» замкнутих областей екрана за допомогою різних візерунків, тобто як вибрати візерунок (шаблон) і колір заповнення фігури. Комбінацію візерунок-колір прийнято називати стилем заповнення.
Процедура SetFillStyle ( lt; шаблон gt;: word; lt; колір gt;: word); встановлює шаблон і колір заповнення замкнутої фігури.
Таблиця 2.5.3. Константи шаблонів зафарбовування наведені в таблиці
Ім'я константиЗначеніеНазначеніеEmptyFill0Заполненіе кольором фонаSolidFill1Однородное заповнення цветомLineFill2Заполненіе виду -LtSlashFill3Заполненіе виду /// SlashFill4Заполненіе виду /// товстими лініяміBkSlashFill5Заполненіе виду товстими лініяміLtBkSlashFill6Заполненіе виду HatchFill7Заполненіе клеткойXHatchFill8Заполненіе косою клеткойInterleaveFill9Заполненіе частою клеткойWideDotFill10Заполненіе рідкісними точкаміCloseDotFill11Заполненіе частими точкаміUserFill12Определяется користувачем
Процедура FloodFill (X, Y: integer; Border: word); заповнює обмежену область поточним кольором і стилем заповнення (SetFillStyle). Кордон закрашиваемой області висвічується кольором, заданим в Border.
Якщо точка (X, Y) знаходиться всередині області, то ця область зафарбовується, якщо ж вона розташована поза області, то заповнюється зовнішня частина області.
Побудова дуг, еліпсів і кіл
Процедура Arc (X, Y: integer; al, a2, R: word); будує дугу. Тут (X, Y) - центр кола дуги, al, a2 - початковий і кінцевий кути, відлічувані від горизонтальної осі проти годинникової стрілки, R-радіус. Якщо al=0 0, а а2=360 °, то викреслюється повна окружність.
Процедура Ellipse (X, Y: integer; al, a2, Rx, Ry: word); призначена для побудови еліптичних дуг. Тут (X, Y) - центр еліпса, al, a2 - початковий і кінцевий кути, відлічувані від горизонтальної осі проти годинникової стрілки, Rx і Ry - горизонтальна і вертикальна півосі. Якщо al=0 °, а а2=360 0, то викреслюється повний еліпс.
Процедура FillEllipse (X, Y: integer; Rx, Ry: word); будує повний зафарбований еліпс.
Процедура Circle (X, Y: integer; R: word); виводить на екран зображення кола з центром (X, Y) і радіусом R. Окружність малюється кольором, заданим SetColor.
Процедура PieSlice (X, Y: integer; al, n2, R: word); виводить на екран зображення закрашеного сектора кола, використовуючи в якості центру кола точку (X, Y), початковий кут al, кінцевий кут a2 і радіус R. Контур сектора висвічується поточним кольором. При заповненні сектора використовуються шаблон і колір, встановлені процедурою SetFillStyle. Якщо al=0 °, а а2=360 °, то на екран виводиться зафарбована окружність.
Процедура Sector (X, Y: integer; al, a2, Rx; Ry: word); будує зафарбований сектор еліпса.
Реалізація імітації руху графічних об'єктів
Створити видимість руху на екрані можна двома способами.
Перший спосіб полягає в тому, що імітація руху об'єкта на екрані створюється за рахунок багаторазового виконання програмою напору дій: намалювати - пауза - стерти малюнок (намалювати його в тому ж місці кольором фону) - змінити координати зображення.
Перед початком складання програми треба продумати опис «рухається» об'єкта; характер зміни координат, що визначають поточний стан об'єкта; діапазон зміни і крок.
Другий спосіб імітації руху малюнка або його частини складається і його запам'ятовуванні в окремій області оперативної пам'яті з тим, щоб надалі швидко відновити це зображення в іншому місці екрана.
Для зберігання фрагмента найзручніше використовувати динамічну область пам'яті. Отримати розмір пам'яті в байтах, необхідної для збереження образу фрагмента, дозволяє функція ImageSize (X1, Yl, X2, Y2: integer): word. Тут (X1, YI) і (X2, Y2) - координати верхнього лівого та нижнього правого кутів прямокутника. Як...