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


 

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

41835. ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ И СХЕМЫ 238.57 KB
  Данная работа посвящена изучению простейших комбинационных логических устройств реализующих логические функции сложения умножения и отрицания. В результате функции отображающие информацию принимают в каждый момент времени только значения 0 или 1. Такие функции называют логическими а сигналы входные и выходные переменные – двоичными бинарными. Рассматривая входные сигналы х1 х2 хп в качестве аргументов можно соответствующие выходные сигналы представлять в виде функции уi = fх0 х1 х2 хп с помощью...
41836. Изучение и анализ конструкций сцеплений транспортных автомобилей 78.68 KB
  Контрольные вопросы дайте классификацию сцеплений назначение устройство и принцип работы фрикционного однодискового гидравлического и электромагнитного сцеплений конструктивные особенности различных видов сцеплений их преимущества и недостатки применяемые материалы для изготовления элементов и узлов сцеплений какие приводы используются для управления сцеплением опишите их устройство и дайте им характеристику опишите устройство и работу центробежного сцепления какие существуют способы передачи крутящего момента от маховика двигателя к...
41837. Разработка комплекта конструкторской документации на кодовый замок 763 KB
  Наиболее интересными для обывателя являются, правда, другие замки, устанавливающиеся прямо в дверное полотно. Они имеют огромный плюс – им не нужна замочная скважина, а значит, сторонний наблюдатель просто не будет знать о его присутствии
41838. Система питания дизельных двигателей 177.92 KB
  Николаева Лабораторная работа № 9 Система питания дизельного двигателя Сделал студент группы 2151 Гуськов К.Е Система питания дизельных двигателей Общая информация При работе дизельного двигателя в его цилиндры всасывается наружный воздух который сжимается до высокого давления. Система подачи воздуха Главными особенностями конструкции впускного воздушного тракта рассматриваемого в настоящем Руководстве дизельного двигателя являются использование в нем турбокомпрессора приводимого во вращение потоком отработавших газов и отсутствие...
41839. Создание отчетов и экранных форм в среде MS Access 171.48 KB
  Вид отчета представлен на Рисунке 1.01 Идентификационный код Фамилия Имя Отчество Телефон Группа фамилий начинающихся на букву А 1545678990 Архипов Сергей Иванович нет Количество в группе 1 Группа фамилий начинающихся на букву Б 2314743296 Бородулин Андрей Васильевич 271412 1955443781 Безродный Владимир Михайлович 323214 2055894321 Бронзов Станислав Иванович 231070 Количество в группе 3 Группа фамилий начинающихся на букву К...
41840. Исследование конструкции системы отопления пассажирского вагона 588.5 KB
  Цель занятия: Исследовать конструкцию основных элементов системы отопления пассажирского вагона. Котел системы отопления. Схемы систем отопления.
41841. Поиск информации в сети Internet 344.59 KB
  В дополнение к этому существует ряд альтернативных средств поиска способных вам пригодиться включая утилиты которые работая совместно с браузером добывают информацию из Web и так называемые экспертные узлы где с вашими запросами работают живые люди. Поисковые машины и каталоги При всем изобилии методов поиска в Internet наиболее распространенными средствами нахождения информации попрежнему остаются поисковые машины и каталоги. Поисковые машины – это комплекс специальных программ для поиска в сети. Хранит ссылки на страницы словарь...
41842. Основные характеристики и испытание интегральных преобразователей кодов (дешифратора, шифратора, демультиплексора и мультиплексора) 457.22 KB
  На одном из m выходов дешифратора появляется логическая 1 а именно на том номер которого соответствует поданному на вход двоичному коду. На всех остальных выходах дешифратора выходные сигналы равны нулю. Условное изображение дешифратора 4х16 читаемого четыре в шестнадцать на схемах дано на рис.
41843. Изучение и анализ конструкций коробок передач транспортных автомобилей 81.94 KB
  Контрольные вопросы дайте классификацию коробкам передач назначение устройство и принцип работы двух и трехвальной механической коробки передач устройство и работа гидромеханической коробки передач конструктивные особенности различных видов коробок передач их преимущества и недостатки применяемые материалы для изготовления элементов и узлов коробок передач назначение устройство и работа синхронизаторов автомобилей ВАЗ и ЗиЛ каким образом предотвращают произвольное выключение передач каким образом предотвращают...