Изображение движущегося объекта на фоне неподвижных предметов

Московская открытая социальная академия









Финансово-экономический факультет

Кафедра информационных технологий в экономике







К У Р С О В А Я   Р А Б О Т А





по дисциплине  «Компьютерная графика»



на тему: «Изображение движущегося объекта на фоне неподвижных предметов.

Луна на звездном небе»



                     





Выполнил (а) студент (ка)  __Семакина _______________________

____Наталья Сергеевна______группы__332______





Руководитель курсовой работы  проф. Лаптев Д.Н.



Зачтена                  Оценка                         Подпись преподавателя

«___» __________2010 г.  ________        ____________________



























Москва - 2010






Оглавление


Введение



Используя полученные навыки программирования на Turbo Pascal 


Код программы:



Анимация пейзажа - домик, дерево, з дымаря домика выпускаются клубочки дыма, а по небу передвигается туча.



program grafika_01;

uses crt,graph;

var

gr1,gr2,x,y,a,b,c,d,i:integer;

begin

a:=200;b:=1;c:=260;d:=100;i:=0;

gr1:=detect;

gr2:=vgahi;

initgraph(gr1,gr2,'C:PascalBGI');

SetFillStyle(1,1);

Bar(0,0,640,480);

SetFillStyle(1,2);

Bar(0,460,640,480);

SetFillStyle(1,6);

Bar(80,340,200,460);

Bar(85,270,115,320);

SetFillStyle(1,9);

Bar(120,380,160,420);

SetColor(0);

Rectangle(120,380,160,420);

Line(140,380,140,420);

Line(140,400,160,400);

Line(60,340,140,280);

line(140,280,220,340);

Line(220,340,60,340);

SetFillStyle(1,6);

FloodFill(140,310,0);

SetFillStyle(1,9);

Sector(140,325,0,180,20,20);

line(140,325,140,305);

Line(140,325,154,315);

Line(140,325,126,315);

SetFillStyle(1,14);

FillEllipse(490,100,40,40);

SetFillStyle(1,7);

FillEllipse(492,104,4,4);

FillEllipse(488,86,6,6);

FillEllipse(500,75,2,3);

FillEllipse(480,120,4,2);

FillEllipse(520,90,2,2);

SetFillStyle(1,6);

Bar(450,340,460,460);

SetFillStyle(1,2);

Arc(415,320,40,320,20);

Arc(455,320,40,140,20);

Arc(455,320,220,320,20);

Arc(495,320,220,500,20);

Arc(435,320,75,135,30);

Arc(475,320,45,105,30);

Arc(435,320,225,315,30);

Arc(475,320,225,320,30);

Arc(455,300,20,160,25);

FloodFill(455,320,0);

x:=0;

y:=460;

SetColor(2);

repeat

Line(x,y,x+10,y-10);

Line(x+10,y,x+30,y-20);

x:=x+20;

until x>=640;

repeat

SetfillStyle(1,1);

Bar(0,140,520,200);

Bar(0,0,200,265);

SetColor(1);

SetColor(0);

if c<0 then begin c:=260;i:=0;d:=100 end;

SetFillStyle(1,15);

Arc(a-40,170,40,320,20);

Arc(a,170,40,140,20);

Arc(a,170,220,320,20);

Arc(a+40,170,220,500,20);

Arc(a-20,170,45,135,30);

Arc(a+20,170,45,135,30);

Arc(a-20,170,225,315,30);

Arc(a+20,170,225,320,30);

FloodFill(a+1,171,0);

SetFillStyle(1,7);

FillEllipse(d,c,8+i,5+i);

FillEllipse(d,c-10,14+i,10+i);

FillEllipse(d,c-25,19+i,15+i);

FillEllipse(d,c-45,25+i,19+i);

c:=c-11;

d:=d+5*b;

i:=i-1;

if a=460 then b:=-1;

if a=40 then b:=1;

a:=a+10*b; delay(64000); delay(64000);

until keypressed;

readln;

end.