- •Тема_7: Робота в графічному режимі
- •Приклади побудови графічних зображень.
- •Створення ефекту руху зображення в графічному режимі.
- •1. Текстовий та графічний режими роботи
- •2. Ініціалізація графічного режиму
- •InitGraph (grDriver, grMode, “шлях до драйвера”);
- •3. Бібліотека Graph
- •Стандартні процедури та функції для побудови графічних зображень
- •4. Приклади побудови графічних зображень
- •Var grDriver: integer;
- •Var grDriver:integer;
- •InitGraph(grDriver,grMode,grPath);
- •Var grDriver:integer;
- •InitGraph(grDriver,grMode,grPath);
- •5. Створення ефекту руху зображення в графічному режимі
- •Var grDriver:integer;
- •I:integer;
- •Var grDriver:integer;
- •I:integer; {параметр циклу}
- •InitGraph(grDriver,grMode,grPath);
- •6. Відтворення звуку
I:integer;
Begin
grDriver:=Detect;
grPath:='C:/bp/bgi';
InitGraph(grDriver,grMode,grPath); {ініціалізація графічного режиму}
SetFillStyle(SolidFill,Green); {суцільне заповнення області зеленим кольором}
SetColor(Green); {колір ліній – зелений}
for i:=1 to 35 do
begin
ClearDevice; {очистка екрану}
PieSlice(35+15*i,35+10*i,0,360,30); {коло}
Delay(2000); {затримка на 2 секунди}
end;
readln;
CloseGraph; {вихід з графічного режиму}
readln
End.
Приклад 5. Відтворити ріст ялинки, на яку світить сонечко, за допомогою анімації.
Текст програми:
Program PR5
Uses Graph,crt;
Var grDriver:integer;
grMode:integer;
grPath:string;
I:integer; {параметр циклу}
m:array[1..32] of integer; {масив координат точок ялинки}
Begin
grDriver:=Detect;
grPath:='C:/bp/bgi';
InitGraph(grDriver,grMode,grPath);
for i:=1 to 20 do
begin
ClearDevice;
m[1]:=250;
m[2]:=150-i+5;
m[3]:=280+i;
m[4]:=170+i;
m[5]:=253+i;
m[6]:=170+i;
m[7]:=285+i;
m[8]:=190+i+6;
m[9]:=256+i;
m[10]:=190+i+6;
m[11]:=290+i;
m[12]:=210+i+12;
m[13]:=259+i;
m[14]:=210+i+12;
m[15]:=295+i;
m[16]:=230+i+16;
m[17]:=205-i;
m[18]:=230+i+16;
m[19]:=241-i;
m[20]:=210+i+12;
m[21]:=210-i;
m[22]:=210+i+12;
m[23]:=244-i;
m[24]:=190+i+6;
m[25]:=215-i;
m[26]:=190+i+6;
m[27]:=247-i;
m[28]:=170+i;
m[29]:=220-i;
m[30]:=170+i;
m[31]:=250;
m[32]:=150-i+5;
SetFillStyle(SolidFill,green);
FillPoly(16,m); {ялинка}
SetFillStyle(SolidFill,brown);
Bar(242-i div 5,230+i+16,258+i div 5,245+i+16);
SetFillStyle(SolidFill,yellow);
SetColor(yellow);
PieSlice(400,50,0,360,30); {сонечко}
SetColor(white);
Line(400,20,400,0);
Line(430,50,460,50);
Line(400,80,400,110);
Line(370,50,340,50);
Line(420,30,450,0);
Line(420,75,450,105);
Line(380,75,350,105);
Line(380,30,350,0);
Delay(2000);
end;
readln;
CloseGraph;
readln;
End.
Результати виконання програми:
6. Відтворення звуку
Для відтворення звуку використовуються такі процедури модуля CRT:
Sound (частота звуку в Гц);
Delay (тривалість звучання в мілісекундах);
NoSound; {відміна звучання}
Частоти звучання нот наведені в таблиці:
Нота |
Б. октава |
М. октава |
Перша октава |
Друга октава |
До |
131 |
262 |
523 |
1047 |
Ре |
147 |
294 |
587 |
1174 |
Мі |
165 |
330 |
659 |
1318 |
Фа |
175 |
349 |
698 |
1396 |
Соль |
196 |
392 |
785 |
1568 |
Ля |
220 |
440 |
880 |
1760 |
Сі |
247 |
494 |
988 |
1975 |
Приклад 6. За допомогою звуку відтворити дзвінок телефону.
Текст програми:
Program PR6;
Uses Crt;
Var i:integer;
Begin
repeat
for i:=1 to 150 do
begin
sound(410);
Delay(40);
NoSound;
end;
Delay(15000);
until KeyPressed;
End.