69105

Графічні процедури й функції

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-09-30

80 KB

0 чел.

Лекція 14. Тема: Графічні процедури й функції.

План:

1. Графічні процедури й функції

2. Керування кольором і стилями

3. Графічні примітиви

1. Графічні процедури й функції

Наведемо перелік основних процедур і функцій бібліотеки Graph (табл. 5.1). Для зручності всі підпрограми згруповані за функціональним призначенням.

Таблиця 5.1. Графічні процедури й функції

Призначення

Формат

Параметри

Керування курсором

Поточні

координати курсору

function GetX: integer;

function GetY: integer;

Відсутні

Максимальні

координати курсору

function GetMaxX: integer;

function GetMaxY: integer;

Відсутні

Зсув курсору

procedure MoveTo (x, y: integer);

х, у – координати точки

Графічні примітиви

Дуга кола

procedure Arc (x, y: integer; StAngle, EndAngle, Radius: word);

х, у – координати центру кола, StAngle, EndAngle – початковий та кінцевий кути, Radius - радіус

Заштрихований прямокутник

procedure Bar (x1, y1, x2, y2: integer);

x1, y1, x2, y2 – координати лівого верхнього та правого нижнього кутів

Коло

procedure Circle (x, y: integer; Radius: word);

х, у – координати центра; Radius – радіус

Многокутник

procedure DrawPoly (NumPoints: word; var PolyPoints);

NumPoints – кількість кутів, PolyPoints – масив координат вершин

Еліпс

procedure FillEllipse (x, y: integer; XRadius, YRadius: word);

х, у – координати центра; XRadius, YRadius – радіуси по осях х та у

Відрізок

procedure Line (x1, y1, x2, y2: integer);

x1, y1, x2, y2 – координати двох кінців відрізка

Прямокутник

x1, y1, x2, y2 – координати лівого верхнього та правого нижнього кутів

Відрізок, початок якого збігається з позицією курсору

procedure LineTo (x, y: integer);

х, у – координати кінця відрізка

Точка

procedure PutPixel (x, y: integer; Pixel: word);

х, у – координати точки; Pixel – колір точки

Сектор еліпса

procedure Sector (x, y: integer; StAngle, EndAngle, XRadius, YRadius: word);

х, у – координати центра еліпса; StAngle, EndAngle – початковий та кінцевий кути; XRadius, YRadius – радіуси по вісях абсцис і ординат

Керування кольором і стилями

Колір фона

Відсутні

Колір ліній

function GetColor: word;

Відсутні

Код

максимального кольору

function GetMaxColor: word;

Відсутні

Призначення

Формат

Параметри

Заповнення

фігури кольором

procedure FloodFill (x, y: integer; Color: TcolorRef);

х, у – координати точки всередині фігури; Color – колір, що обмежує фігуру

Встановлення

кольору фону

procedure SetBkColor (Color: TcolorRef);

Color – колір фону

Встановлення

кольору ліній

procedure SetColor (Color: TcolorRef);

Color – колір контуру фігури

Встановлення

стилю заповнення

procedure SetFillStyle (Pattern: word; Color: word);

Pattern – тип заповнення; Color – колір заповнення

Стиль лінії

procedure SetLineStyle (LineStyle: word; Pattern: word; Thickness: word);

LineStyle – стиль лінії (неперервна, пунктирна тощо); Pattern – допоміжний параметр; Thickness – товщина лінії

Робота з памяттю

Запис зображення

в память

procedure GetImage (x1, y1, x2, y2: integer; var BitMap);

x1, y1, x2, y2 – координати лівого верхнього та правого нижнього кутів зображення; BitMap – зображення в памяті

Виведення зображення

з памяті на екран

procedure PutImage (x, y: integer; var BitMap; BitBlt: word);

x, y - координати лівого верхнього кута зображення; BitMap – зображення в памяті; BitBlt – спосіб виведення зображення на екран

Розмір зображення

в памяті

function ImageSize (x1, y1, x2, y2: integer): word;

x1, y1, x2, y2 – координати лівого верхнього та правого нижнього кутів прямокутного зображення

Обробка тексту

Встановлення

стиля тексту

procedure SetTextStyle (Font, Direction: word; CharSize: word);

Font – шрифт, Direction – напрям тексту, CharSize – розмір літер

Вирівнювання тексту

procedure SetTextJustify (Horiz, Vert: word);

Horiz, Vert – горизонтальний та вертикальний напрями виведення тексту

Висота тексту

function TextHeight (TextString: string): word;

TextString – рядок тексту

Ширина тексту

function TextWidth (TextString: string): word;

TextString – рядок тексту

Виведення тексту

на екран

procedure OutText (TextString: string);

TextString – рядок тексту

Виведення тексту на екран у

заданих координатах

procedure OutTextXY (x, y: integer; TextString: string);

х, у – координати зображення рядка, TextString – рядок тексту

2. Керування кольором і стилями

Для зображення графічних об'єктів використовується кольорова палітра з кодами кольорів 0, 1, ..., maxcolors. Загалом драйвер VGA дозволяє відображати до 218 кольорових відтінків, але одночасно — не більше 16. Тому значення константи  maxcolors дорівнює 15 і за замовчуванням використовуються 16 кольорів, перелічених нижче.

Const

Black=0;    {чорний}   Blue=1;          {темно-синій}

Green=2;    {темно-зелений}  Cyan=3;          {темно-блакитний}

Red=4;    {бордовий}   Magenta=5;          {темно-фіолетовий}

Brown=6;    {рудий}   Lightgray=7;          {сірий}

Darkgray=8;    {темно-сірий}  Lightblue=9;          {синій}

Lightgreen=10;  {зелений}   Lightcyan=11;          {блакитний}

Lightred=12;    {червоний}   Lightmagenta=13;   {фіолетовий}

Yellow=14;    {жовтий}   White=15;          {білий}

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

Для зафарбування геометричної фігури використовуються процедури заповнення замкненого контуру заданим кольором у певному стилі (див. табл. 5.1). Наведемо оголошення констант, що визначають стиль заповнення, а також стиль і товщину ліній.

Const {стиль заповнення}

EmptyFill=0; SolidFill=1; LineFill=2; LtSlashFill=3; SlashFill=4; BkSlashFill=5; LtBkSlashFill=6;

HatchFill=7; XHatchFill=8; InterleaveFill=9; WideDotFill=10; CloseDotFill=11; UserFill=12;

Const {стиль ліній}

SolidLn=0; DottedLn=1; CenterLn=2;

DashedLn=3; UserBitLn=4;

Const {товщина ліній}

NormWidth=1; TrickWidth=3;

3. Графічні примітиви

Графічні примітиви - це геометричні фігури, що їх можна відобразити на екрані за допомогою окремих процедур.

Приклад 5.2.

Розглянемо програму, яка зображує концентричні кола випадково вибраними кольорами (рис. 5.1). Діаметр кіл спочатку збільшується, а згодом — зменшується. Після зображення кіл програма виводить відрізки прямих, що мають випадковий колір і розташування. Потім зображуються прямокутник, еліпс, сектор еліпса і трикутник.

Program ех5_1;    {відображення графічних примітивів}

uses graph, crt;

var dr, mode, i: integer;

begin

  randomize;     {ініціалізація генератора випадкових чисел}

dr:=Detect;

InitGraph (dr, mode, ‘c:\bp\bgi’);

{концентричні кола, радіус яких збільшується}

for i:=1 to 480 do     {максимальний радіус – 480 пікселів}

begin

  SetColor (random(15));      {вибір кольору}

  Circle (getmaxX div 2, getmaxY div 2, i);

  delay(200);        {затримка відображення}

end;

{концентричні кола, радіус яких зменшується}

for i:=480 downto 1 do

begin

  SetColor (ra

ndom(15));

  Circle (getmaxX div 2, getmaxY div 2, i); delay(200);

  SetColor (0);     {колір фону для приховування кола}

  Circle (getmaxX div 2, getmaxY div 2, i); delay(200);

end;

for i:=1 to 480 do        {лінії}

begin

  SetColor (random(15)); delay(200);

  Line (random(640), random(6480), random(640), random(480));

end;

readln;

ClearDevice;         {очистка екрана}

SetBkColor (15); SetColor (4);

Rectangle (50, 40, 100, 200);       {прямокутник}

SetColor (1);

FillEllipse (GetMaxX div 2, 200, 150, 50);     {еліпс}

SetColor (12); Sector (400, 100, 0, 270, 50, 70);    {сектор}

SetColor (10); Line (140, 200, 250, 50);     {трикутник}

Line (250, 50, 350, 120); Line (140, 200, 350, 120);

readln;

end.

Контрольні питання

1. Графічні процедури й функції

2. Керування кольором і стилями

3. Графічні примітиви


 

А также другие работы, которые могут Вас заинтересовать

7313. Трудовий договір та особливості його складання 344.5 KB
  Трудовий договір § 1. Поняття трудового договору Право на працю є основним конституційним правом громадян України. Воно проголошене ст. 43 Конституції України, визнається за кожною людиною і становить собою можливість заробляти на життя працею, яку ...
7314. Колективний договір. Контроль за виконанням колективного договору і види відповідальності 106 KB
  Колективний договір План Поняття колективного договору. Колективні переговори по укладенню колективного договору. Порядок укладення колективного договору і його зміст. Контроль за виконанням колективного договору і види відповідальності ...
7315. Керування пам’яттю в ОС. Простий безперервний розподіл і розподіл з перекриттям. Розподіл пам’яті статичними й динамічними розділами 121.5 KB
  Тема: Керування памяттю в ОС. Простий безперервний розподіл і розподіл з перекриттям. Розподіл памяті статичними й динамічними розділами План Основна память. Вимоги до адрес, використовуваних у програмах...
7316. Процесуальні строки і витрати 40.16 KB
  Процесуальні строки і витрати ПЛАН: Вступ. Поняття процесуальних строків та їх значення у кримінальному процесі. Класифікація строків у кримінальному процесі. Порядок обчислення процесуальних строків. Поняття і види процесуальних в...
7317. Розв’язування систем лінійних алгебраїчних рівнянь над скінченними полями 184.63 KB
  Ю.Д. Жданова. Лекції з ВГПМ. М2 ТЧ обчислювальні алгоритми. Лекція № 7 10 Тема: Розв’язування систем лінійних алгебраїчних рівнянь над скінченними полями План лекції: Алгоритм знаходження всіх цілочислових розв’язків лінійного а...
7318. Організаційні та правові основи захисту населення під час воєнних дій. Правила поводження населення в конкретних НС 63.5 KB
  Тема: Організаційні та правові основи захисту населення під час воєнних дій. Правила поводження населення в конкретних НС. План: Основні положення міжнародного права з питань захисту людей. Правила поводження населення в конкретних НС. Ве...
7319. Взаємовідносини у колективі 97.5 KB
  Взаємовідносини у колективі План Прийняття групового рішення. Соціально - психологічний клімат колективу. Одним із показників успішної діяльності керівника організації (фірми, колективу) є рівень сформованості соціально-психологічно...
7320. Основи психокорекції. Курс лекцій 264.5 KB
  Психокорекційна практика як основна форма діяльності практичного психолога Поняття про психологічну корекцію. Мета і завдання психокорекції. Принципи психокорекційної роботи: принцип єдності діагностики і кор...
7321. Тістечка. Напівфабрикати для приготування тістечок 45.5 KB
  Тістечка. Напівфабрикати для приготування тістечок. Класифікація тістечок. Особливості технології приготування тістечок. Основні органолептичні показники. Санітарні правила при приготуванні та реалізації. Умови та термін зберігання...