Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНСТРУ_мет.doc
Скачиваний:
0
Добавлен:
17.11.2019
Размер:
2.27 Mб
Скачать

SetFillStyle (шаблон, цвет заполнения);

Значения шаблона задаются равными:

0 (сплошной цвет фона),

1 (сплошной текущий цвет),

2-6 (штриховка различной толщины наклона),

7-9 (заполнение клеткой различной толщины и наклона),

10-11 (заполнение точками, густо или редко расположенными).

При использовании процедуры SetFillStyle цвет заполнения может быть не равен цвету контура.

В языке Паскаль существуют специальные средства для заполнения эллипса, секторов круга и эллипса, параллелепипеда.

Объект

Изображение

Запись на языке Паскаль

Эллипс, закрашенный текущим узором и цветом заполнения

FillEllipse (X, Y, RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей

Сектор круга, заполненный текущим узором

PieSlice (X, Y, ά1, ά2 , R);

где (X,Y) – координаты центра, ά1, ά2 - начальный и конечный углы сектора, R – его радиус

Сектор эллипса, закрашенный цветом по текущему шаблону

Sector (X, Y, ά1, ά2 , RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей, ά1, ά2 - начальный и конечный углы сектора

П араллелепипед, передняя грань которого может быть закрашена по текущему шаблону

(X2, Y2)

Bar3D (X1, Y1, X2, Y2, D, Top); где (X1, Y1), (X2, Y2) – координаты диагональных точек передней грани (прямоугольника)б В – ширина боковой грани, Тор – признак отображения верхней грани (TRUE – отображать, FALSE – не отображать)

2. Контрольные вопросы.

    1. Что представляет собой графическое изображение

    2. Что называется разрешающей способностью (разрешением) графического экрана.

    3. Что представляет собой графический адаптер

    4. Что представляет собой графический драйвер.

    5. Действия, которые необходимо выполнить для работы в графическом режиме

3. Задания и технология выполнения.

3.1. Составить программу получения на экране монитора изображения прямоугольного треугольника и точки желтого цвета на зеленом фоне.

Program Tr1;

Uses Graph;

Var a,b: Integer;

Begin

a:=Detect;

InitGraph (a,b,'');

SetBkColor (2);

SetColor (14);

Line (240, 70, 240, 270);

Line (240, 270, 400, 270);

Line (240, 70, 400, 270);

PutPixel (400, 70, 14);

Readln; CloseGraph;

End.

3.2. Составить программу получения на экране монитора изображения снежной бабы (белого цвета на синем фоне).

Program BABA;

Uses Graph;

Var a,b:Integer;

Begin

a:=Detect; InitGraph (a,b,'');

SetBkColor (1);

SetColor (15);

Circle (320, 60, 30);

Circle (320, 140, 50)

Circle (320, 260, 70);

Readln; CloseGraph;

End.

3.3. Составить программу получения на экране монитора изображения головы робота.

Program ROBOT;

Uses Graph;

Var a,b:Integer;

Begin

a:=Detect; InitGraph (a,b,'');

SetBkColor (1);

SetColor (15); {голова}

Rectangle (270,180,370,300); {уши}

Rectangle (240, 220, 270, 260);

Rectangle (370, 220, 400, 260);

Readln; CloseGraph;

End.

3.4. Составить программу получения изображения прямоугольной трапеции.

Первый вариант решения примера 3.4

Program TRAPECIA_1;

Uses Graph;

Var a,b:Integer;

Begin

a:=Detect; InitGraph (a,b,’’);

MoveTo (240, 60);

LineTo (240, 200); {вниз}

LineTo (450, 200); {вправо}

LineTo (350, 60); {влево вверх}

LineTo (240, 60); {влево}

Readln; CloseGraph;

End.

Второй вариант решения примера 3.4 ( с использованием процедуры LineRel):

Program TRAPECIA_2;

Uses Graph; Var a,b:Integer;

Begin

a:=Detect; InitGraph (a,b,’’);

MoveTo (240, 60); LineRel (0, 140);

LineRel (210, 0); LineRel (-100, -140); LineRel (-110, 0);

Readln; CloseGraph;

End.

3.5. Составить программу получения изображения эллипса с центром в точке (320, 240) и длинами полуосей 190 и 80

Program ELIPS;

Uses Graph;

Var a,b:Integer:

Begin

a:=Detect;

InitGraph (a,b,’’);

Ellipse (320, 240, 0, 360, 190, 80);

Readln;

CloseGraph;

End.

3.6. Написать программу заполнения прямоугольного треугольника белым цветом ( с контуром желтого цвета на зеленом фоне).

Program Triangle_1;

Uses Graph;

Var a,b:Integer;

Begin

a:=Detect; InitGraph (a,b,’’);

SetBkColor (2); SetColor (14);

Line (240, 70, 240, 270);

Line (240, 270, 400, 270);

Line (240, 70, 400, 270);

FloodFill (320, 200, 14);

Readln; CloseGraph;

End.

3.7. Написать программу заполнения прямоугольного треугольника красным цветом (с контуром желтого цвета на зеленом фоне).

Скорректируем программу Triangle_1:

{корректировка программы Triangle_1}

Line (240, 70, 400, 270,);

SetFillStyle (1, 4);

{сплошной красный цвет заливки}

FloodFill (320, 260, 14);

3.8. Написать программу заполнения прямоугольной трапеции штриховкой светло-серого цвета нормальной толщины.

Program TRAPECIA_3;

Uses Graph;

Var a,b:Integer;

Begin

a:= Detect;

InitGraph (a,b,’’);

SetColor (1); {синий контур}

MoveTo (240, 60);

LineTo (240, 200);

LineTo (450, 200);

LineTo (350, 60);

LineTo (240, 60);

SetFillStyle (3, 7);

FloodFill (350, 175, 1);

Readln;

CloseGraph;

End.

3.9 Напишите программу заполнения окружности желтым цветом, которая после нажатия на клавишу Enter изменяет цвет заливки на зеленый.

P rogram CIRC;

Uses Graph;

Var a,b:Integer;

Begin

a:=Detect;

InitGraph (a,b,’’);

SetColor (14); {желтый контур}

Circle (320, 175, 100);

SetFillStyle (1, 14);

FloodFill (320, 175,14);

Readln;

ClearDevice;

SetColor (14);

Circle (320, 175, 50);

SetFillStyle (1, 2);

FloodFill (320, 175, 14);

Readln; CloseGraph;

End.

3.10. Написать программу получения изображения горизонтального отрезка с началом в точке (0,240).

Будем рассматривать отрезок как совокупность точек и использовать для получения его изображения процедуру PutPixel. Поместим ее в тело цикла с параметром For. Таким образом, получим изображение 640 точек с координатами (β, 240) при β=0,1,2,3,…,639; в результате соединения пиксели сольются в горизонтальный отрезок.

Program PUT_LANE;

Uses Graph;

Var a,b,k: Integer;

Begin

a:= Detect; InitGraph (a, b, ' ' );

{горизонтальная прямая}

For k:=0 To 639 do

PutPixel (k, 240,14);

{14 – желтый цвет}

Readin; CloseGraph;

End.