6792
Изучение методов вывода иллюстраций, создания битовых образов, создания движущихся и изменяющихся рисунков
Лабораторная работа
Информатика, кибернетика и программирование
Цель работы: Изучение методов вывода иллюстраций, создания битовых образов, создания движущихся и изменяющихся рисунков. Приобретение навыков создания программ мультипликации. Постановка задачи:Изобразить на экране прямоугольник, враща...
Русский
2013-01-08
70 KB
11 чел.
Цель работы: Изучение методов вывода иллюстраций, создания битовых образов, создания движущихся и изменяющихся рисунков. Приобретение навыков создания программ мультипликации.
Постановка задачи: Изобразить на экране прямоугольник, вращающийся в плоскости экрана вокруг одной из своих вершин. И перемещающегося с постоянной скоростью от одного края экрана до другого с постоянной скоростью.
Описание входных, выходных данных
Входные данные |
Выходные данные |
|||||
Идентификатор |
Назначение |
Тип |
Идентификатор |
Назначение |
Тип |
|
MoveTo(x,y) LineTo(x,y) |
Строится рпямоугольник |
integer |
Блок-схему работы алгоритма
Для процедуры proc_1
Для процедуры proc_2
Для процедуры proc_3
Для процедуры proc_4
Вид Окна приложения
Код обработчика события для кнопки выполнения задания
procedure proc_1;
begin
fTask_8.Image1.Canvas.Pen.Color:= clWhite;
with fTask_8.Image1.Canvas do begin
MoveTo(50 + x1, 50); LineTo(80, 10);
MoveTo(80, 10); LineTo(110 - x1, 70);
MoveTo(110 - x1,70); LineTo(80,110);
MoveTo(80,110); LineTo(50 + x1, 50);
end;
x1:= x1 + 5;
if x1 = 60 then begin
fTask_8.Timer1.Enabled:= false;
fTask_8.Timer2.Enabled:= true;
end;
fTask_8.Image1.Canvas.Pen.Color:= clBlack;
with fTask_8.Image1.Canvas do begin
MoveTo(50 + x1, 50); LineTo(80, 10);
MoveTo(80,10); LineTo(110 - x1, 70);
MoveTo(110 - x1,70); LineTo(80,110);
MoveTo(80,110); LineTo(50 + x1, 50);
end;
end;
procedure proc_2;
begin
fTask_8.Image1.Canvas.Pen.Color:= clWhite;
with fTask_8.Image1.Canvas do
begin
MoveTo(50 + x1, 50); LineTo(80, 10);
MoveTo(80, 10); LineTo(110 - x1, 70);
MoveTo(110 - x1,70); LineTo(80,110);
MoveTo(80,110); LineTo(50 + x1, 50);
end;
x1:= x1 - 5;
if x1 = 0 then
begin
fTask_8.Timer1.Enabled:= true;
fTask_8.Timer2.Enabled:= false;
end;
fTask_8.Image1.Canvas.Pen.Color:= clBlack;
with fTask_8.Image1.Canvas do
begin
MoveTo(50 + x1, 50); LineTo(80, 10);
MoveTo(80,10); LineTo(110 - x1, 70);
MoveTo(110 - x1,70); LineTo(80,110);
MoveTo(80,110); LineTo(50 + x1, 50);
end;
end;
procedure proc_3;
begin
x2:= x2 + 1;
fTask_8.Image1.Left:= x2;
if x2 = 500 then
begin
fTask_8.Timer3.Enabled:= false;
fTask_8.Timer4.Enabled:= true;
end;
end;
procedure proc_4;
begin
x2:= x2 - 1;
fTask_8.Image1.Left:= x2;
if x2 = 0 then
begin
fTask_8.Timer3.Enabled:= true;
fTask_8.Timer4.Enabled:= false;
end;
end;
procedure TfTask_8.Timer1Timer(Sender: TObject);
begin
proc_1;
end;
procedure TfTask_8.Timer2Timer(Sender: TObject);
begin
proc_2;
end;
procedure TfTask_8.Timer3Timer(Sender: TObject);
begin
proc_3;
end;
procedure TfTask_8.Timer4Timer(Sender: TObject);
begin
proc_4;
end;