Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція #Graph.doc
Скачиваний:
1
Добавлен:
16.09.2019
Размер:
1.81 Mб
Скачать

Var grDriver:integer;

grMode: integer;

k,s: integer; {додаткові доданки}

a,b:integer; {довжина ребра паралелепіпеда та висота піраміди}

grPath:string;

z:real; {площа бічної поверхні фігури}

bik,zad:array[1..8] of integer; {масив координат точок правої бічної та задньої граней}

Begin

clrscr;

write(' а=');

readln(a);

write('b=');

readln(b);

z:=4*(sqr(a)+sqr(b)*sqrt(3));

writeln('Площа бічної поверхні фігури =',z:5:2,' (кв. од.)');

readln;

grDriver:=Detect;

grPath:='C:/bp/bgi';

k:=a*20;

s:=b*20;

InitGraph(grDriver,grMode,grPath);

Rectangle(200,200,200+k,200+k);

bik[1]:=200+k;

bik[2]:=200;

bik[3]:=200+k+k div 2;

bik[4]:=200-k div 2;

bik[5]:=200+k+k div 2;

bik[6]:=200+k-k div 2;

bik[7]:=200+k;

bik[8]:=200+k;

DrawPoly(4,bik); {права бічна грань паралелепіпеда}

SetLineStyle(DashedLn,1,NormWidth);

zad[1]:=200+k+k div 2;

zad[2]:=200-k div 2;

zad[3]:=200+k div 2;

zad[4]:=200-k div 2;

zad[5]:=200+k div 2;

zad[6]:=200+k-k div 2;

zad[7]:=200+k+k div 2;

zad[8]:=200+k-k div 2;

DrawPoly(4,zad); {задня грань паралелепіпеда}

Line(200+k div 2,200+k-k div 2,200,200+k);

Line(200,200,200+k+k div 2,200-k div 2);

Line(200+k div 2,200-k div 2,200+k,200);

Line(200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k div 2,200-k div 2,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

SetLineStyle(SolidLn,1,NormWidth);

Line(200,200,200+k div 2,200-k div 2);

Line(200,200,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k,200,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k+k div 2,200-k div 2,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

SetColor(green);

OutTextXY(200,10,'Вигляд фігури');

OutTextXY(200+k div 2,200+k-10,'a');

OutTextXY(200+k div 2+(k div 2)div 2-5,200-s+(k div 2)div 2,'b');

readln;

CloseGraph; {вихід з графічного режиму}

readln;

End.

Результати виконання програми:

a=5

b=4

Площа бічної поверхні фігури =210.85 (кв. од.)

Вигляд фігури

5. Створення ефекту руху зображення в графічному режимі

Ефект руху зображення в графічному режимі досягається за допомогою введення процедур, які викреслюють зображення, в цикл, додавання до координат зображення параметра циклу в будь-якому виразі, очищення екрану за допомогою процедури ClearDevice та затримки відтворення зображення на екрані за допомогою процедури Delay (тривалість затримки в мілісекундах).

Приклад 4. Відтворити за допомогою анімації рух зеленої кулі, радіусом 30, вздовж діагоналі монітора.

Текст програми:

Program PR4;

Uses Graph,Crt;

Var grDriver:integer;

grMode:integer;

grPath:string;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]