Анимация
Программы, которые строят, перемещают и изменяют форму различных изображений на экране, называются анимационными. Такие программы, как правило, требуют применения достаточно сложных алгоритмов и используют большой объем памяти для хранения данных.
391
В основе перемещения какого-либо объекта на экране лежит следующий алгоритм:
вывести объект на экран;
стереть объект с экрана;
вывести с некоторым смещением другой вариант объекта и т.д.
При частом выводе объекта с небольшими смещениями создается иллюзия движения.
Существует большое количество анимационных методов, различающихся способами вывода или построения движущихся объектов, источниками поступления данных об изображении и т.п. Простейший анимационный метод заключается в следующем:
определенным цветом выводится рисунок;
рисунок формируется на том же месте цветом, совпадающим с цветом фона. Это вызывает исчезновение рисунка;
рисунок выводится па другом месте своим первоначальным цветом и т.д.
В качестве примера приведем программу, выводящую мяч (окружность красного цвета), катящийся по горизонтальной линии и отражающийся от вертикальных стенок (левая и правая границы экрана).
Program Ball;
Uses Graph, Crt;
Label 10,100;
Const bxi=300; byi=200; bri=10; bci=4;
Var DriverVar, ModeVar:integer;
xm.ym :integer;
bx,by,br,bc :integer;
dx :integer;
Begin
DriverVar:=Detect;
lnitGraph(DriverVar, Modevar,'');
xm:=GetMaxX; ym:=GetMaxY;
bx:=bxi; by:=byi; br:=bri; bc:=bci;
dx:=+1;
SetColor(bc);
Circle(bx,by.br);
10: SetColor(GetBKColor); Circle(bx,by,br);
bx:=bx+dx; by:=by;
if bx>=xm-brthen dx:=-1;
if bx
SetColor(bc); Circle(bx,by,br);
if KeyPressed then goto 100;
goto 10;
100:
SetColor(GetMaxColor);
CloseGraph;
End.
392
Контрольные вопросы
Чем отличается векторная графика от растровой?
Что такое графический примитив?
Как зависит вывод графического изображения от разрешающей способности устройства вывода?
Каким образом осуществляется масштабирование растровых и векторных изображений?
Содержание Назад Вперед