Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_МоваPascal.rtf
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
790.39 Кб
Скачать

Лабораторна робота № 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;

  • видача кількості байтів запам’ятовування області