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


 

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

32872. ИЛЬИН Иван Александрович 25.84 KB
  усматривал главный порок Человека началасередины 20 века во внутренней расколотости в противоречии между разумом умом рассудком и чувствами душой сердцем. Но в выборе направления движения и основных целях его он был прав поскольку без обретения свободы преодоление тоталитарного отчуждения человека его освобождение невозможно и немыслимо. искал пути к снятию противоречий к такой схеме их взаимодействий при которой отедельные части оппозиции становятся разными проявлениями одних и тех же проблем в существовании человека. Пол это...
32873. ФИЛОСОФИЯ КАК МИРОВОЗЗРЕНИЕ. ПРЕДМЕТ ФИЛОСОФИИ 37.61 KB
  ПРЕДМЕТ ФИЛОСОФИИ. ОСНОВНОЙ ВОПРОС ФИЛОСОФИИ. Главное отличие философии от всех иных наук заключается в том что философия является теоретическим мировоззрением предельным обобщением ранее накопленных человечеством знаний. Предмет философии шире предмета исследования любой отдельной науки философия обобщает интегрирует иные науки но не поглощает их не включает в себя все научное знание не стоит над ним.
32874. МИФОЛОГИЯ КАК МИРОВОЗЗРЕНИЕ. ПЕРВОБЫТНАЯ МИФОЛОГИЯ. РЕЛИГИЯ КАК МИРОВОЗЗРЕНИЕ 57.06 KB
  Как правило мифы пытаются дать ответ на следующие основные вопросы: происхождение Вселенной Земли и человека; объяснение природных явлений; жизнь судьба смерть человека; деятельность человека и его достижения; вопросы чести долга этики и нравственности. Религия форма мировоззрения основанная на вере в наличие фантастических сверхъестественных сил которые влияют на жизнь человека и окружающий мир. При религиозном мировоззрении для человека характерна чувственная образноэмоциональная а не рациональная форма восприятия...
32875. АНТИЧНАЯ ФИЛОСОФИЯ. ПИФАГОР, СОКРАТ, ПЛАТОН, АРИСТОТЕЛЬ, ДЕМОКРИТ, ЭПИКУР 64.08 KB
  Подобно тому как математик ставит вопрос что такое единица и дает довольнотаки сложное определение этого казалось бы простейшего понятия так и философ с глубокой древности задается проблемой: что такое бытие что значит быть Эта специфика философии проливает известный свет и на вопрос о том почему и когда философия возникает. Философ ставит все это под сомнение но делает это для того чтобы докопаться до подлинных корней из которых растет сама данная традиция; в этом и состоит смысл его вопроса: что значит быть что такое бытие А...
32876. СРЕДНЕВЕКОВАЯ ФИЛОСОФИЯ. ОТЦЫ ЦЕРКВИ. ВАСИЛИЙ ВЕЛИКИЙ, ГРИГОРИЙ БОГОСЛОВ, ИОАНН ЗЛАТОУСТ, ФОМА АКВИНСКИЙ, ГРИГОРИЙ ПАЛАМА. РЕАЛИЗМ И НОМИНАЛИЗМ 45.65 KB
  которое признавало Бога в качестве высшего существующего начала а весь окружающий мир Его творения. 50 Можно выделить следующие основные черты средневековой теологической философии: теоцентризм главной причиной всего сущего высшей реальностью основным предметом философских исследований являлся Бог; изучению самого по себе космоса природы явлений окружающего мира уделялось мало внимания так как они считались творением Бога; господствовали догматы истины не нуждающиеся в доказательствах о творении всего Богом и откровении...
32877. Географическая среда в развитие общества. Географическое направление в обществоведении 41.93 KB
  Географическая среда в развитие общества. В более узком смысле это часть материи за исключением общества т. Географическая среда имеет историческую обусловленность и расширяется с развитием общества. Географическая среда является важным фактором развития общества: Она влияет на разделение труда на размещение отраслей производства что изучается экономической географией; Она влияет на темпы развития общества может быть боле или менее благоприятной; Она опосредованно влияет на характер политических систем что изучается...
32878. Материальное производство. Труд. Производительные силы. Технологический способ труда. Технократическое направление в обществоведении 41.14 KB
  Технологический способ труда. Лишь для земледельческого труда делалось некоторое исключение. Средневековую цивилизацию многие историки культуры трактуют как цивилизацию труда. ознаменовался новым сдвигом в социальном статусе и образе труда.
32879. Производственные отношения. Социальная закономерность. Фатализм и волюнтаризм 30.27 KB
  Производственные отношения. Производственные отношения совокупность материальных и экономических отношений между людьми в процессе общественного производства и движения общественного продукта от производства до потребления. Производственные отношения являются необходимой стороной общественного производства. В процессе труда складываются отношения обусловленные потребностями технологии и организации производства например отношения между рабочими различных специальностей между организаторами и исполнителями связанные с...
32880. Общественно-экономическая формация и цивилизация 38.11 KB
  Общественноэкономическая формация в марксизме стадия общественной эволюции характеризующаяся определённой ступенью развития производительных сил общества и соответствующим этой ступени историческим типом экономических производственных отношений которые зависят от неё и определяются ею. Не существует формационных ступеней развития производительных сил которым не соответствовали бы обусловленные ими типы производственных отношений. Как ступени исторического развития человечества следующие за варварством. Как уровень ступень...