procedure LineRel(DX,DY: Integer);
Процедура SetLineStyle устанавливает новый стиль вычерчиваемых линий. Заголовок процедуры имеет вид:
procedure SetLineStyle(Type, Pattern, Thick: Word);
где, Type, Pattern, Thick – соответственно тип, образец и толщина вычерчиваемых линий. Тип линий может быть задан с помощью одной из следующих констант
SolidLn |
= 0 |
{сплошная} |
DottedLn |
= 1 |
{точечная} |
CenterLn |
= 2 |
{штрих-пунктирная} |
DashedLn = 3 |
{пунктирная} |
|
Установленный процедурой стиль линий используется при построении прямоугольников и других фигур.
Процедура SetWriteMode устанавливает способ взаимодействия вновь выводимых линий с уже существующим на экране изображением. Заголовок процедуры имеет вид:
procedure SetWriteMode(Mode);
Если параметр Mode имеет значение 0, выводимые линии накладываются на существующее изображение обычным образом, если значение равно 1, то это наложение осуществляется через «логическое ИЛИ», т.е. в точках пересечения светимость пикселей инвертируется.
Задание 4 – закрепить знания о процедурах и функциях рисования прямоугольников и окружностей на языке Паскаль.
Процедура Rectangle вычерчивает прямоугольник с указанными координатами углов. Заголовок процедуры имеет вид:
procedure Rectangle(X1,Y1,X2,Y2: Integer);
где, X1-Y2 координаты левого верхнего (X1,Y1) и правого нижнего (X2,Y2) углов прямоугольника. Он вычерчивается с использованием текущих цвета и стиля линий.
Процедура DrawPoly вычерчивает произвольную ломаную линию, заданную координатами точек излома. Заголовок процедуры имеет вид:
6
procedure DrawPoly(N: Word; var Points);
где, N - количество точек излома, включая обе крайние точки; Points - переменная типа PointType, содержащая координаты точек излома. Точки излома задаются парой значений типа Word: первое определяет горизонтальную, второе - вертикальную координаты. Для них используется специальный определенный в модулей тип PointType. При вычерчивании используется текущие цвет и стиль линий.
Процедура Circle вычерчивает окружность. Заголовок процедуры имеет вид:
procedure Circle(X,Y: Integer; R: Word);
где, X, Y – координаты центра; R – радиус в пикселях. Окружность выводится текущим цветом. Толщина линии устанавливается текущим стилем, но вид линии всегда SolidLn (сплошная).
Процедура Arc чертит дугу окружности. Заголовок процедуры имеет вид:
procedure Arc(X,Y: Integer; BegA,EndA,R: Word);
где, X, Y – координаты центра; BegA, EndA – соответственно начальный и конечный углы дуги; R – радиус. Углы отсчитываются против часовой стрелки и указываются в градусах. Нулевой угол соответствует горизонтальному направлению вектора слева направо.
Процедура Ellipse чертит дугу эллипса. Заголовок процедуры имеет вид:
procedure Ellipse(X,Y: Integer; BegA,EndA,RX,RY: Word);
где, X, Y – координаты центра; BegA, EndA – соответственно начальный и конечный углы дуги; RX, RY – горизонтальный и вертикальный радиусы эллипса в пикселях.
Задание 5 – закрепить знания о процедурах и функциях вывода текста в графическом режиме на языке Паскаль.
Процедура OutText выводит текстовую строку, начиная с текущего положения указателя. Заголовок процедуры имеет вид:
procedure OutText(Txt: String);
7
Процедура OutTextXY выводит текстовую строку, начиная с заданного места. Заголовок процедуры имеет вид:
procedure OutTextXY(X, Y: Integer; Txt: String);
Процедура SetTextStyle устанавливает стиль текстового вывода на графический экран. Заголовок процедуры имеет вид:
procedure SetTextStyle(Font, Direct, Size: Word);
где Font – код шрифта, Direct – код направления (0 – слева направо, 1 – снизу вверх), Size – код размера шрифта.
Процедура SetTextJustify задает выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам. Заголовок процедуры имеет вид:
procedure SetTextJustify(Horiz, Vert: Word);
где Horiz – горизонтальное выравнивание, Vert – вертикальное.
1.2. Лабораторные задания
Задание 1 – Наберите следующий программный код. Проанализируйте назначение каждого оператора, попробуйте самостоятельно поменять какие-либо параметры и посмотреть какие это вызовет изменения.
program Gr; uses crt, graph; var
//Переменные для графического драйвера grDriver:Integer; //Графический драйвер grMode:Integer; //Режим графического драйвера i,j:Integer;
st:String; begin
grDriver:=Detect;
InitGraph(grDriver,grMode,''); //Инициализация модуля Graph OutTextXY(90,340,'SetColor()'); //Вывод текста
for i:=1 to 16 do begin
8
SetColor(i); //Цвет лини Line(i*20,1,i*20,300); //Вывод линии str(i,st);
OutTextXY(i*20,360,st); end;
ReadKey;
ClearDevice; //Очистка эрана SetColor(15); OutTextXY(90,340,'SetLineStyle(i,1,1)'); for i:=1 to 16 do
begin
SetLineStyle(i,1,1); //Изменение стиля линии Line(i*20,1,i*20,300);
str(i,st);
OutTextXY(i*20,360,st); end;
ReadKey;
ClearDevice;
SetColor(15);
OutTextXY(90,340,'SetLineStyle(1,1,i)'); //Изменение ширины
линии
for i:=1 to 16 do begin
SetLineStyle(1,1,i);
Line(i*20,1,i*20,300);
str(i,st);
OutTextXY(i*20,360,st); end;
ReadKey;
CloseGraph; //Выход из графического режима end.
Задание 2 – Составьте блок-схему алгоритма и напишите программу на языке Паскаль, которая создаст таблицу с характеристиками в соответствии с выданным вариантом. Затем
9
заполните двухмерный массив случайными целыми числами и результат выведите в нарисованную таблицу.
1.Таблица 5х5, горизонтальные линии красные, вертикальные
белые.
2.Таблица 3х8, горизонтальные линии желтые, вертикальные малиновые.
3.Таблица 4х7, горизонтальные линии зеленые, вертикальные розовые.
4.Таблица 5х6, горизонтальные линии синие, вертикальные коричневые.
5.Таблица 6х3, горизонтальные линии бирюзовые, вертикальные фиолетовые.
6.Таблица 7х5, горизонтальные линии фиолетовые, вертикальные бирюзовые.
7.Таблица 4х6, горизонтальные линии коричневые, вертикальные синие.
8.Таблица 3х7, горизонтальные линии розовые, вертикальные зеленые.
9.Таблица 7х7, горизонтальные линии малиновые, вертикальные желтые.
10.Таблица 5х7, горизонтальные линии белые, вертикальные
красные.
Задание 2 – Составьте блок-схему алгоритма и напишите программу на языке Паскаль, которая создаст заданное количество окружностей с увеличивающимся радиусом. Окружности должны быть разного цвета. Характеристики и число окружностей взять в соответствии с выданным вариантом
1.Число окружностей 5, центр с координатами 300х240, шаг увеличения радиуса 25.
2.Число окружностей 6, центр с координатами 290х250, шаг увеличения радиуса 20.
3.Число окружностей 7, центр с координатами 280х260, шаг
10