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


 

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

45160. Столыпинская модель ГУ. Реформа органов государственного управления 23.69 KB
  Об образовании из восточных частей Люблинской и Седлецкой губерний особой Холмской губернии с изъятием ее из управления варшавского генералгубернатора Столыпин и Государственная Дума это особый вопрос. К его чести Столыпин наверное единственный из министров царского правительства кто не боялся выступать в Думе с ответами по самым разным депутатским запросам. Между тем иногда аудитория была настроена к нему настолько враждебно что изза шума в зале Столыпин не мог начать выступление в течение 10 15 минут. Например выступая в Думе по...
45161. Кризис государственной власти и начало конца дворянской управленческой элиты 23.61 KB
  Кризис государственной власти и начало конца дворянской управленческой элиты Почему же относительно легко был сокрушен монархический строй в России Среди главных причин нужно назвать десакрализацию верховной власти потерю ею своего авторитета. В период кризиса власти негативную роль сыграло отсутствие у монарха качеств государственного лидера. Продвижение к власти осуществлялось по критерию личной преданности царю. Назреванию кризиса самодержавной власти способствовала мировая война кровавый воз которой Россия тянула с августа 1914 г.
45162. Двоевластие и его сущность. Кризисы Временного правительства: причины и последствия 16.38 KB
  Кризисы Временного правительства: причины и последствия 27 февраля был образован Петроградский совет рабочих депутатов в количестве 250 человек избравший свой исполнительный комитет. 1 марта между Исполнительным комитетом Совета и Временным комитетом Государственной Думы начались переговоры об образовании Временного правительства....
45163. Новая экономическая политика 30.19 KB
  Сущность НЭПа Сущность НЭПа была понятна не всем. При самом различном понимании НЭПа многие партийные деятели сходились в том что в конце гражданской войны в Советской России сохранилось два основных класса населения: рабочие и крестьяне а вначале 20 годов после ведения НЭПа появилась и новая буржуазия носительница реставраторских тенденций. Ленин понимал неизбежные противоречия опасности развития на пути НЭПа. Не отказываясь от конечной цели создания нерыночной системы экономики НЭПа большевики прибегли к использованию...
45164. Сталинская командно-административная система 23.45 KB
  В ЗОе годы совсем оформилась та административно командная система управления русским обществом которая тесновато связана с функционированием гос партии обладающей возможностями верховной власти в стране.Процесс преобразования коммунистической партии России в государственную партию начался в годы гражданской войны когда наряду с Советами призванными после Октября 1917 года осуществлять власть в центре и на местах стали создаваться в каждом уезде волости губернии и партийные комитеты. Опыт большевистской партии рассчитанный на...
45165. Влияние войны на политические настроения 28.1 KB
  Своими глазами увидели и смогли оценить тот мир о разложении и близкой гибели которого им говорили до войны. После окончания войны в сентябре 1945 г.Состоялись выборы в местные Советы Верховные Советы республик и Верховный Совет СССР в результате чего обновился депутатский корпус не менявшийся в годы войны.
45166. ГУ СССР периода стагнации(60-80гг 20 века) 16.14 KB
  ГУ СССР периода стагнации 60-80 гг 20 века Отставка с руководящих партийных и государственных постов Н. экономическая реформа разработка и реализация которой была связана с именем председателя Совета Министров СССР А. Тупик опасный ибо отрыв развитой экономики мира от экономики СССР неуклонно увеличивался. эта концепция была законодательно закреплена в новой Конституции СССР.
45167. Попытки реорганизации советской системы управления во второй половине 1980х гг 28.13 KB
  СССР пытался в одиночку выдержать гонку вооружений против США и НАТО. Андропов оставил пост председателя КГБ СССР сохранив фактический контроль за этой организацией и стал вторым секретарем ЦК КПСС официальным наследником Брежнева. было принято постановление ЦК КПСС и Совмина СССР провозгласившее курс на введение сухого закона. Удар по бюджету был столь значителен что он так и не был преодолен до последних дней существования СССР.
45168. Современная система государственного управления в России 26.07 KB
  Мирная преемственность власти это важнейший элемент политической стабильности о которой мы с вами мечтали к которой стремились которой добивались.Отставка правительства Примакова приход к власти премьер-министра Степашина углубил государственный кризис в стране и только утверждение в должности нового Президента России привело к укреплению государственных институтов власти всех уровней. Новая команда Президента поставила перед собой цель: выстроить четко работающую исполнительную вертикаль власти добиться правовой дисциплины и...