Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемКсения Шукрина
1 Анимация Анимация - компьютерная имитация движения с помощью изменения (и перерисовки) формы объектов или показа последовательных изображений с фазами движения.
2 Анимация с использованием видеостраниц SetActivePage(n); - устанавливает активную видеостраницу SetVisualPage(n); - устанавливает отображаемую (видимую) видеостраницу Нумерация видеостраниц с 0.
3 Алгоритм анимации с использованием видеостраниц 1)рисуем первую фазу на одной видеостранице 2)рисуем вторую фазу на другой видеостранице 3)показываем первую видеостраницу 4)ждём 5)показываем вторую видеостраницу 6)ждём 7)переходим на шаг 3
4 Видеостраница 0
5 Видеостраница 1
6 Процедура Delay (задержка) delay(ms); - задерживает выполнение программы на ms миллисекунд 1 мс = 1/1000 с На современных компьютерах delay(1000) задержке на 1 с Процедура delay расположена в модуле CRT.
7 uses crt, graph; var … procedure DrawMan1; … { первый чел. } procedure DrawMan2; … { второй чел. } begin InitGraph …; DrawMan1; SetActivePage(1); DrawMan2; repeat delay(5000); SetVisualPage(1); delay(5000); SetVisualPage(0); until keypressed; while keypressed do readkey; CloseGraph; end.
8 uses crt, graph; var p: byte; … procedure DrawMan1; … { первый чел. } procedure DrawMan2; … { второй чел. } begin InitGraph …; DrawMan1; SetActivePage(1); DrawMan2; p:=0; repeat delay(5000); if p=0 then p:=1 else p:=0; SetVisualPage(p); until keypressed; while keypressed do readkey; CloseGraph; end. p:=(p + 1) mod 2;
9 Анимация движущихся объектов Алгоритм анимации: 1)рисуем объект в точке (x, y) 2)ждём 3)стираем объект в точке (x, y) 4)изменяем координаты (x, y) 5)переходим к шагу 1
10 uses crt, graph; var … begin InitGraph …; for x:=0 to GetMaxX do begin setcolor(15); circle(x,50,10); delay(5000); setcolor(0); circle(x,50,10); end; CloseGraph; end.
11 uses crt, graph; var … begin InitGraph …; for x:=0 to GetMaxX div 5 do begin setcolor(15); circle(x*5,50,10); delay(5000); setcolor(0); circle(x*5,50,10); end; CloseGraph; end.
12 (0; 0) (GetMaxX; GetMaxY) (x; y)
13 uses crt, graph; var … begin InitGraph …; for x:=0 to GetMaxX div 5 do begin setcolor(15); circle(x*5,round(GetMaxY/GetMaxX*x*5),10); delay(5000); setcolor(0); circle(x*5,round(GetMaxY/GetMaxX*x*5),10); end; CloseGraph; end.
15 Режимы вывода линий Режим Первонача льный цвет Новый цветРезультат NormalPut XORPut
16 Установка режима вывода линий SetWriteMode(mode); mode: NormalPut, XORPut, ANDPut, ORPut
17 uses crt, graph; var … begin InitGraph …; SetWriteMode(XORPut); setcolor(15); for x:=0 to GetMaxX div 5 do begin circle(x*5,50,10); delay(5000); circle(x*5,50,10); end; CloseGraph; end.
18 Анимация вращения линий
19 Полярная система координат и её связь с прямоугольной СК x y a r y x x = r * cos(a) y = r * sin(a) 0
20 uses crt, graph; var a: integer; begin InitGraph …; SetWriteMode(XORPut); setcolor(15); for a:=0 to 360 do begin line(GetMaxX div 2, GetMaxY div 2, GetMaxX div 2 + round(100*cos(a*pi/180)), GetMaxY div 2 – round(100*sin(a*pi/180))); delay(5000); line(GetMaxX div 2, GetMaxY div 2, GetMaxX div 2 + round(100*cos(a*pi/180)), GetMaxY div 2 – round(100*sin(a*pi/180))); end; CloseGraph; end.
21 Системная дата и время GetTime(h,m,s,s100); SetTime(h,m,s,s100); GetDate(y,m,d,dw); SetDate(y,m,d); Модуль DOS dw: 0 – Sunday 1 – Monday 2 – Tuesday 3 – 4 – Thursday 5 – Friday 6 - Saturday
22 uses crt, graph, dos; var h,m,s,s100,h1,m1,s1: word; Procedure DrawWatch; { рисование циферблата } Procedure DrawSecHand(s: word); begin line(GetMaxX div 2, GetMaxY div 2, GetMaxX div 2 + round(150*cos((90-6*s)*pi/180)), GetMaxY div 2 – round(150*sin((90-6*s)*pi/180))); end; Procedure DrawMinHand(m: word); { рисование мин. стр} Procedure DrawHourHand(h,m: word); begin line(GetMaxX div 2, GetMaxY div 2, GetMaxX div 2 + round(50*cos((90-h*30-m*0.5)*pi/180)), GetMaxY div 2 – round(50*sin((90-h*30-m*0.5)*pi/180))); end;
23 begin InitGraph …; DrawWatch; SetWriteMode(XORPut); GetTime(h,m,s,s100); DrawHourHand(h,m); DrawMinHand(m); DrawSecHand(s);
24 repeat GetTime(h1,m1,s1,s100); if s1s then begin DrawSecHand(s); if m1m then begin DrawMinHand(m); DrawHourHand(h,m); h:=h1; m:=m1; DrawHourHand(h,m); DrawMinHand(m); end; s:=s1; DrawSecHand(s); end; until keypressed; CloseGraph; End.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.