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. Графічні примітиви


 

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

84574. Механізм першого вдиху новонародженої дитини 38.86 KB
  Після перерізки пуповини в крові дитини накопичується вуглекислота знижується рН крові та знижується парціальний тиск кисню стимуляція центральних та периферичних хеморецепторів збудження дихального центру збудження інспіраторних нейронів скорочення мязів вдиху. Після народження дитини треба зняти рефлекс пірнальника котрий блокує настання вдиху через наявність рідини в дихальних шляхах.
84575. Роль рецепторів розтягнення легень та блукаючих нервів в регуляції дихання 44.12 KB
  Вони приймають участь в саморегуляції ритму дихання. Цим і визначається роль блукаючих нервів в забезпеченні ритму дихання. Варто відзначити що до рецепторів які знаходяться в легенях та в дихальних шляхах і які беруть участь в регуляції дихання відносяться: ірритантні рецептори легень які реагують на дію їдких газів пилу тютюнового диму холодного повітря і при збудженні зумовлюють звуження бронхів і гіпервентиляцію; юкстакапілярні рецептори що розміщуються поблизу капілярів легень і реагують на зміну механічних властивостей...
84576. Роль центральних і периферичних хеморецепторів в регуляції дихання. Компоненти крові, що стимулюють зовнішнє дихання 44.53 KB
  Компоненти крові що стимулюють зовнішнє дихання. Адекватні подразники для них: збільшення Рсо2 артеріальної крові; зменшення рН артеріальної крові; зменшення Ро2 артеріальної крові. Інформація що надходить до дихального центру при підвищенні активності цих рецепторів викликає гіпервентиляцію підвищення глибини та частоти дихання нормалізація вказаних показників крові. Тобто за їх участю здійснюється регуляція газового складу артеріальної крові за відхиленням саморегуляція на основі негативного зворотнього звязку.
84577. Регуляція зовнішнього дихання при фізичному навантаженні 42.93 KB
  При фізичному навантаженні розвивається гіпервентиляція ступінь якої пропорційна інтенсивності навантаження. Головним механізмом розвитку гіпервентиляції при фізичному навантаженні є безумовні рефлекси з пропріорецепторів працюючих мязів керуючий пристрій КП яким є дихальний центр отримує по каналу зовнішнього звязку інформацію від пропріорецепторів працюючих мязів про роботу що виконується; КП аналізує цю інформацію і викликає підвищення глибини та частоти дихання для того щоб при збільшених метаболічних потребах тканин склад...
84578. Методи визначення енерговитрат людини. Дихальний коефіцієнт. Джерела і шляхи використання енергії в організмі людини 49.84 KB
  Джерела і шляхи використання енергії в організмі людини. Тобто 1й закон термодинаміки представляє собою закон збереження енергії. Ентропія міра невпорядкованості системи міра деструкції та розсіяності енергії. Тобто 2й закон обмежує можливі самовільні перетворення енергії в системі.
84579. Основний обмін і умови його визначення, фактори, що впливають на його величину 44.73 KB
  Основний обмін ОО добові енерговитрати організму в стандартних умовах: зранку тому що є добові коливання рівня енерговитрат він мінімальний вночі о 34 годині й максимальний ввечері о 1718 годині; в умовах фізичного та емоційного спокою мязева робота супроводжується збільшенням енерговитрат організму так як на скорочення мязів необхідно витрачати значну кількість енергії; в умовах емоційної напруги активується симпатичний відділ вегетативної нервової системи збільшується кількість катехоламінів та тироксину розщеплення...
84580. Робочий обмін, значення його визначення 46.22 KB
  За величиною РО населення поділяють на 6 груп: Для людей віком 1829 років добові енерговитрати в різних групах складає: Група Добові енерговитрати Чоловіки Жінки кДж ккал кДж ккал 1 11715 2300 10142 2400 2 12552 3000 10669 2550 3 13388 3200 11296 2700 4 15480 3700 13179 3150 5 17991 4300 6 20043 4900 16423 3850 1 група переважає розумова праця; 2 група зайняті легкою фізичною працею; 3 група виконання фізичної роботи середньої важкості; 4 група зайняті важкою фізичною працею; 5 група зайняті дуже важкою фізичною роботою; 6 група...
84581. Температура тіла людини та її добові коливання 37.09 KB
  Організм людини належить до гомойотермних здатний підтримувати сталу температуру тіла незалежно від коливань температури навколишнього середовища. Поняття гомойотермії стосується ядра тіла внутрішні органи та головний мозок. Оболонка тіла людини шкіра та підшкірна клітковина є пойкілотермними її температура залежить від температури навколишнього середовища.
84582. Фізіологічне значення гомойотермії. Терморецептори і центр терморегуляції 51.2 KB
  Підтримка сталості температури ядра необхідна для нормального протікання процесів обміну речовин в клітинах активність ферментів залежить від температури. Організм людини краще переносить зниження температури життєдіяльність зберігається до 26 С. До підвищення температури організм людини менш стійкий її підвищення до 43 С протягом більшменш тривалого часу зумовлює смерть внаслідок порушення процесів обміну речовин та функцій клітин. Більш вигідним корисним є вмикання регуляції за збуренням оскільки при цьому попереджуються...