
- •Методичні вказівки
- •1. Тематика та завдання до лабораторних занять Лабораторна робота № 1 (2 год.)
- •Стислі теоретичні відомості
- •1 . Оператор присвоювання:
- •2. Оператор вводу:
- •3 . Оператор виводу:
- •Послідовність виконання роботи
- •Лабораторна робота № 2 (10 год.)
- •Послідовність виконання роботи
- •Лабораторна робота № 3 (6 год.)
- •Стислі теоретичні відомості Процедури та функції бібліотеки Graph
- •ImageSize(координата х лівої верхньої вершини, координата у лівої верхньої вершини, координата х правої нижньої вершини, координата у правої нижньої вершини: Integer): word;
- •InitGraph(var номер драйвера: Integer; var режим графіки: Integer; шлях до драйверу: string);
- •InstallUserDriver(ім’я: string; вказівка автодетектування: point): Integer;
- •Послідовність виконання роботи
- •Лабораторна робота № 4 (4 год.)
- •Послідовність виконання роботи
- •Лабораторна робота № 5 (4 год.)
- •Послідовність виконання роботи
- •Лабораторна робота № 6 (4 год.)
- •Послідовність виконання роботи
- •Лабораторна робота № 7 (6 год.)
- •Послідовність виконання роботи
- •Література
- •Перелік питань для підсумкового контролю
- •Додатки
- •Варіанти завдань до лабораторної роботи № 1
- •Варіанти завдань до лабораторної роботи № 2
- •Варіанти завдань до лабораторної роботи № 2
- •Варіанти завдань до лабораторної роботи № 4
- •Варіанти завдань до лабораторної роботи № 5
- •Варіанти завдань до лабораторної роботи № 6
- •Варіанти завдань до лабораторної роботи № 7
Лабораторна робота № 3 (6 год.)
Тема: Побудова програм в середовищі ТурбоПаскаль з застосуванням графіки
Мета роботи: Ознайомлення з бібліотекою Graph. Розгляд прикладів, в яких використовуються процедури та функції бібліотеки Graph. Створення програм на основі прикладів, що були розглянуті.
Стислі теоретичні відомості Процедури та функції бібліотеки Graph
Малює геометричний образ:
дуги
Arc(координата X центра, координата У центра:Integer; початковий кут, кінцевий кут:Word; радіус: Word);
неперервного бруса
Bar(координата х лівої верхньої вершини, координата у лівої верхньої вершини, координата х правої нижньої вершини, координата у правої нижньої вершини: Integer);
тривимірного бруса
Bar3D(координата Х лівої верхньої вершини, координата У лівої верхньої вершини, координата Х правої нижньої вершини, координата У правої нижньої вершини: Integer, глибина: Word, вершина: Boolean);
кола Circle(координата X центра, координата Y центра:Integer; радіус: Word);
контуру з ліній DrawPoly(кількість вершин: Word; var масив точок);
еліптичної дуги
Ellipse(координата X центра, координата У центра:Integer; початковий кут, кінцевий кут:Word; Х радіус, У радіус: Word);
заповненого еліпса
FillEllipse(координата X центра, координата У центра:Integer; Х радіус, У радіус:Word);
заповненого контуру FillPoly(кількість вершин: Word; var масив точок);
лінії (від точки до точки)
Line(координата х початку лінії, координата у початку лінії, координата х кінця лінії, координата у кінця лінії: Integer);
лінії (від позначки до точки в прирощеннях)
LineRel(прирощення по координаті Х, прирощення по координаті У: Integer);
лінії (від позначки до точки в координатах)
LineTo(координата Х кінцевої точки, координата У кінцевої точки: Integer);
заповненого сектора
PieSlice(координата X центра, координата У центра:Integer; початковий кут, кінцевий кут:Word; радіус: Word);
прямокутника
Rectangle(координата х лівої верхньої вершини, координата у лівої верхньої вершини, координата х правої нижньої вершини, координата у правої нижньої вершини: Integer);
заповненого еліптичного сектора
Sector(координата X центра, координата У центра:Integer; початковий кут, кінцевий кут, Х радіус, У радіус: Word);
Робота з курсором, координатами та окремими точками:
видача координат останньої Arc GetArcCoord(var Arc координати: ArcCoordType);
При цьому використовують тип, який визначений у модулі Graph:
ArcCoordType=record
X, Y,
Xstart, Ystart,
Xend, Yend: integer;
end;
видача коефіцієнта дозволу по осях
GetAspectRatio(var компонента дозволу по осі Х, компонента дозволу по осі У:Word);
видача кольору пікселя GetPixel(координата Х, координата У: Integer): word;
видача координати Х курсор GetX: Integer;
видача координати У курсору GetY: Integer;
переміщення курсору за заданим прирощенням
MoveRel(прирощення по Х, прирощення по У: Integer);
переміщення курсору в задану точку MoveTo(координата x, координата y: Integer);
установка пікселя в задану точку
PutPixel(координата Х, координата У: Integer; код кольору: word);
установка масштабу за координатами
SetAspectRatio(коефіцієнт по осі Х, коефіцієнт по осі У: word): word;
Робота з кольоровою гамою:
заповнення області FloodFill(координата Х, координата У, колір границі: word);
видача номера поточного фонового кольору GetBkColor: word;
видача номера поточного кольору GetColor: word;
видача апаратної палітри GetDefaultPalette( var палітра: PaletteType);
PaletteType визначений у модулі Graph таким чином:
PaletteType=record
Size: Byte;
Color: array[0..MaxColor] of ShortInt;
end;
видача останнього шаблону заповнення
GetFillPattern(var образ заповнення: FillPatternType);
запит поточного шаблону та кольору заповнення, які встановлені процедурами SetFillStyle та SetFillPattern
GetFillSettings(var інформація заповнення: FillSettingsType);
видача максимального кольору в SetColor GetMaxColor: word;
видача поточної палітри та її розміру GetPalette( var палітра: PaletteType);
видача розміру таблиці палітри GetPaletteSize: Integer;
зміна кольору палітри SetAllPalette( var палітра: PaletteType);
встановлення поточного фонового кольору SetBkColor( колір: word);
встановлення поточного кольору SetColor( колір: word);
встановлення шаблону заповнення
SetFillPattern(образ: FillPatternType; колір: word);
встановлення шаблону заповнення та кольору
SetFillStyle(заповнювач: word; колір: word);
зміна одного кольору в палітрі SetPalette( номер кольору: word; колір: ShortInt);
модифікація входів палітри для ІВМ 8514 і VGA
SetRGBPalette(номер кольору, значення червоного кольору, значення зеленого кольору, значення блакитного кольору: Integer);
Робота з текстом:
видача поточних параметрів (шрифт, розмір, направлення, вирівнювання)
GetTextSetting((var текстова інформація: TextSettingsType);
Тип TextSettingsType визначений у модулі Graph таким чином:
TextSettingsType=record
Font: word;
Direction: word;
CharSize: word;
Horiz: word;
Vert: word;
end;
інсталяція шрифту користувача InstallUserFont(ім’я файла шрифту: string): Integer;
видача рядка у вихідний пристрій OutText(рядок тексту: string);
видача рядка, починаючи з заданої точки
OutTextXY(координата х точки видачі тексту, координата у точки видачі тексту: Integer; текстовий рядок: string);
реєстрація шрифту BGI RegisterBGIFont(шрифт: pointer): Integer;
встановлення вирівнювання тексту
SetTextJustify( горизонтальне вирівнювання, вертикальне вирівнювання: word);
встановлення поточного шрифту, стилю та розміру
SetTextStyle(шрифт, напрямок: word; розмір символу: word);
зміна ширини та висоти символу
SetUserCharSize(множення Х, ділення Х, множення У, ділення У: word);
видає висоту рядка в пікселях TextHeight(рядок тексту: string): word;
видає ширину рядка в пікселях TextWidth(рядок тексту: string): word;
Робота з розмірами та типами ліній:
видача поточного стилю лінії
GetLineSettings(var інформація про лінію: LineSettingsType);
Тип LineSettingsType визначений ув модулі Dos таким чином:
LineSettingsType=record
LineStyle: word;
Pattern: word;
Thickness: word;
end;
Забезпечується 5 стилів (константа=0 – неперервна лінія, 1 – лінія з крапок, 2 – штрихпунктирна, 3 – штрихова, 4 – визначена користувачем), а також два види товщини (1 – нормальна, 3 – товста).
встановлення поточної ширини та типу лінії
SetLineStyle(тип лінії: word; образ:word; товщина:word);
встановлення режиму виводу малюнка SetWriteMode(режим запису: Integer);
Робота з видачею у вікна на екрані і сторінки в пам’яті:
очищення поточного пристрою виводу ClearDevice;
очищення поточного вікна ClearViewPort;
очищення активного вікна ClrScr;
збереження бітового образу в пам’яті
GetImage(координата х лівої верхньої вершини, координата у лівої верхньої вершини, координата х правої нижньої вершини, координата у правої нижньої вершини: Integer; var біт карта); Біт-карта визначається, як P€, де Р – вказівка на область необхідного розміру;
видача параметрів поточного вікна і відсічення
GetViewSettings(var порт виводу: ViewPortType);
Модуль Graph визначає тип ViewPortType таким чином:
ViewPortType=record
x1, y1, x2, y2: integer;
Clip: Boolean;
end;
видача кількості байтів запам’ятовування області