Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 7.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
295.94 Кб
Скачать

7.3.2 Константы

Таблица 22-Константы типов и толщины линии

Константа

Значение

Тип

SolidLn

0

Сплошная

DottedLn

1

Точечная

CenterLn

2

Штрихпунктирная

DashedLn

3

Пунктирная

UserBitLn

4

Тип определяется пользователем

NormWidth

1

Нормальная толщина

ThickWidth

3

Тройная толщина

Таблица 23-Константы управления шрифтом

Константа

Значение

Описание

DefaultFont

0

Матричный шрифт 8х8

TriplexFont

1

Шрифт триплекс

SmallFont

2

Мелкий шрифт

SansSerifFont

3

Прямой шрифт

GothicFont

4

Готический шрифт

-

5

Рукописный шрифт

-

6

Одноштриховой шрифт типа Courier

-

7

Красивый наклонный шрифт типа Times Italic

-

8

Шрифт типа Times Roman

-

9

Шрифт типа Courier увеличенного размера

-

10

Крупный двухштриховый шрифт

HorizDir

0

Горизонтальное направление

VertDir

1

Вертикальное направление

UserCharSize

0

Размер символа, определяемый пользователем

LeftText

0

Указатель слева от текста

CenterText

1

Указатель по центру текста

RightText

2

Указатель справа от текста

BottomText

0

Указатель снизу от текста

CenterText

1

Указатель по центру текста

TopText

2

Указатель сверху от текста

7.3.3 Процедуры и функции

Таблица 24-Процедуры

Метод

Назначение

Procedure Circle(X,Y:Intrger,R:Word)

Рисует окружность радиуса R, используя X,Y как координаты центра

Procedure ClearDevice

Очищает экран

Procedure ClearViewPort

Очищает окно

Procedure CloseGraph

Закрывает графический режим

Procedure GraphDefaults

Устанавливает стандартные параметры графического режима

Procedure InitGraph(var Driver, Mode: Integer; Path:String)

Инициализирует графический режим. Переменные Driver и Mode должны содержать тип графического драйвера и его режим работы. Допускается указать Driver=0 для автоматического определения этих параметров по результатам тестирования аппаратуры. Параметр Path определяет маршрут поиска файла графического драйвера.

Procedure Line(X1,Y1,X2,Y2:Integer)

Рисует линию от точки X1,Y1 до точки X2,Y2.

Procedure LineTo(X,Y:Integer)

Рисует линию от текущего указателя к точке X,Y

Procedure MoveTo(X,Y:Integer)

Смещает текущий указатель к точке X,Y.

Procedure OutText(TextString: String)

Выводит текстовую строку на экран.

Procedure OutTextXY(X,Y:Integer; TextString: String)

Выводит текст в заданное место зкрана

Procedure PutPixel(X,Y:Integer; Color:Word)

Выводит точку цветом Color с координатами X,Y.

Procedure Rectangle(X1,Y1,X2,Y2: Integer)

Рисует прямоугольник, используя текущий цвет и тип линий.

Procedure SetBkColor(Color:Word)

Устанавливает цвет фона

Procedure SetColor(Color:Word)

Устанавливает основной цвет, которым будет осуществляться рисование.

Procedure SetGraphMode(Mode: Integer)

Устанавливает новый графический режим и очищает экран.

Procedure SetLineStyle(LineStyle, Pattern, Thickness: Word)

Устанавливает толщину и стиль линии.

Procedure SetTextJustify(Horiz,Vert: Word)

Устанавливает выравнивание текста, используемого в процедурах OutText и OutTextXY.

Procedure SetTextStyle(Font,Direction, CharSize: Word)

Устанавливает текущий шрифт, стиль и размер текста

Procedure SetViewPort(X1,Y1,X2,Y2: Integer; ClipOn: Boolean)

Устанавливает текущее окно для графического вывода.

7.3.4 Пример использования графического режима экрана и некоторых возможностей процедур из модуля Graph представлен ниже:

Unit Zad1; {создание модуля}

Interface

Uses Crt, Graph;

Procedure z1;

Implementation

Procedure z1; {описание процедуры}

var d,ibm,i,x1,y1,x2,y2,n:integer;

s1,s2,s3,s4,s5:string;

begin

ClrScr;

d:=detect;

ibm:=ibm8514hi;

s1:=' Demonstration program';

s2:=' Interface Menu';

s3:=' By Gureev Alexey';

s4:='Borland Pascal';

s5:=' If you like it, then press any key ...';

InitGraph(d,ibm,'d:\pas\pas\bgi'); {подключение графического режима}

if graphresult<>grOK then WriteLn('error...') {проверка открытия графического режима на наличие ошибок}

else

begin

SetGraphMode(IBM); {установка режима}

ClearDevice; {очищение экрана}

SetColor(7); {установка основного цвета}

SetLineStyle(0,0,3); {установка стиля начертания линий}

Rectangle(0,0,640,480); {рисует прямоугольник}

SetLineStyle(1,0,1); {переустановка типа линий}

Rectangle(3,3,637,477);

SetTextStyle(7,0,3); {установка способа начертания, типа шрифта и его размера}

SetColor(27);

MoveTo(30,10); {перемещение курсора в определенную точку экрана}

OutText(s1); {вывод строки на экран}

MoveTo(50,70);

SetColor(54);

SetTextStyle(4,0,6);

Delay(400); {пауза в 400 миллисекунд}

OutText(s2);

MoveTo(340,350);

SetTextStyle(5,0,4);

SetColor(73);

For i:=1 to Length(s3) do begin{побуквенный вывод строки}

OutText(s3[i]);

delay(250);

end;

MoveTo(100,150);

SetColor(26);

SetTextStyle(8,1,4);

OutText(s4);

Delay(300);

SetTextStyle(2,0,5);

Repeat{вывод в виде бегущей строки}

MoveTo(250,450);

For i:=1 to Length(s5) do begin

SetColor(15);

OutText(s5[i]);

delay(15);

end;

Delay(400);

MoveTo(250,450);

For i:=1 to Length(s5) do begin

SetColor(12);

OutText(s5[i]);

delay(15);

end;

Delay(400);

Until KeyPressed;

end;

readkey;

SetColor(7);

x1:=0;y1:=0;

x2:=640;y2:=480;

n:=2;

Repeat{декоративная заливка экрана}

Rectangle(x1,y1,x2,y2);

x1:=x1+Round(n/2);y1:=y1+n;

x2:=x2-Round(n/2);y2:=y2-n;

until x1>240;

CloseGraph; {закрытие графического режима}

ReadKey;

end;

end.

Unit Zad2;

Interface

Uses Crt, Graph;

Procedure z2;

Implementation

var d,ibm,k,col,x1,y1,x2,y2,x3,y3,x4,y4,r,n,p1,p2,p3:integer;

Procedure z2;

begin

ClrScr;

Randomize; {подключение генератора случайных чисел}

d:=detect;

ibm:=ibm8514hi;

InitGraph(d,ibm,'d:\pas\pas\bgi'); {переход к графическому режиму}

if graphresult<>grOK then WriteLn('error...') {проверка на наличие ошибок}

else

begin

SetGraphMode(IBM); {установка режима}

ClearDevice; {очистка экрана}

k:=0;

Repeat

col:=Random(256);

SetLineStyle(0,0,3); {устанавливаем способ начертания линий}

x1:=Random(640);x2:=Random(640);x3:=Random(640);

y1:=Random(480);y2:=Random(480);y3:=Random(480);

x4:=Random(640);y4:=Random(480);

r:=Random(100);

SetColor(col);

Line(x1,y1,x2,y2); {вычерчивает прямую}

Line(x2,y2,x3,y3);

Line(x3,y3,x1,y1);

Delay(30); {пауза в 30 миллисекунд}

SetColor(col+1);

Rectangle(x1,y2,x4,y3); {выводит прямоугольник}

Delay(30);

SetColor(col-1);

Circle(x4,y4,r); {вычерчивает окружность}

Delay(30);

SetColor(0);

{затемнение выведенных объектов}

Line(x1,y1,x2,y2);

Line(x2,y2,x3,y3);

Line(x3,y3,x1,y1);

Rectangle(x1,y2,x4,y3);

Circle(x4,y4,r);

If k=10 then begin {вывод надписи с сопровождением звуковаго сигнала}

MoveTo(150,200);

SetColor(col+2);

SetTextStyle(3,0,4);

OutText('Information Systems');

Sound(50);

Delay(100);

NoSound;

k:=0;end;

Delay(30);

k:=k+1;

until KeyPressed;

end;

readkey;

SetColor(7);

x1:=0;y1:=0;

x2:=640;y2:=480;

n:=2;

Repeat{декоративная заливка экрана}

Rectangle(x1,y1,x2,y2);

x1:=x1+Round(n/2);y1:=y1+n;

x2:=x2-Round(n/2);y2:=y2-n;

until x1>240;

CloseGraph; {завершение работы в графическом режиме}

end;

end.