ПОБУДОВА РУХОМИХ ЗОБРАЖЕНЬ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Розрахункова робота
Предмет:
Комп'ютерна графіка

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ « ЛЬВІВСЬКА ПОЛІТЕХНІКА » РОЗРАЧУНКОВА РОБОТА З КУРСУ «КОМП’ЮТЕРНА ГРАФІКА» НА ТЕМУ: «ПОБУДОВА РУХОМИХ ЗОБРАЖЕНЬ» Варіант 25. Блок-схеми основної програми та підпрограм. 4.1. Основна програма. 4.2. Підпрограма Tabul.   4.3. Підпрограма Graphic.    Варіант 6 4.1. Блок-схема основної програми.  4.2. Блок-схема підпрограми Kwadrat.  Текст програми: program task_2546; uses crt,graph; type matrix=array [1..4] of integer; var xc,yc,xc1,yc1,dr,reg,xt,yt,k,i,j,x0,y0,r,xe,ye,l0,m0,f1,f2,l01,m01:integer; a2,a1,a,b,h,ay,dx,kx,ky,xm,yr,ym,miny,maxy,x,y,xm1,ym1,k1,yd,xd:real; s:string;f:text; x2,y2,x1,y1:matrix; begin dr:=detect; a:=-19; b:=-2; h:=(b-a)/200; initgraph (dr,reg,''); x:=a; dx:=b-a; if x<1.914 then begin miny:=-exp((1/5)*ln(abs(2*x*x*x-7))); maxy:=-exp((1/5)*ln(abs(2*x*x*x-7))); end else begin miny:=exp((1/5)*ln(2*x*x*x-7)); maxy:=exp((1/5)*ln(2*x*x*x-7)); end; assign(f,'c:\rozr.dat'); rewrite(f); while x<=b+h/6 do begin if x<1.914 then yr:=-exp((1/5)*ln(abs(2*x*x*x-7))) else yr:=exp((1/5)*ln(2*x*x*x-7)); if yr<miny then miny:=yr; if yr>maxy then maxy:=yr; writeln(f,x:2:4,' ',yr:2:4); x:=x+h; end; settextstyle(2,0,2); ay:=maxy-miny; xt:=getmaxx-40; yt:=getmaxy-40; kx:=xt/dx; ky:=yt/ay; x0:=xt-round(b*kx)+20; xe:=x0; if a>0 then xe:=xt-round(kx*dx)+20; if b<0 then xe:=xt+20; y0:=yt+round(miny*ky)+20; ye:=y0; if y0<0 then ye:=yt-round(ay*ky)+20; if y0>yt then ye:=yt+20; line (xe,20,xe,yt+20); line (20,ye,xt+20,ye); setlinestyle(3,0,3); setcolor(lightgray); flush(f); reset(f); while not eof(f) do begin readln(f,x,yr); xm:=x0+(x*kx); ym:=y0-(yr*ky); if x>a then begin k1:=arctan(abs(ym-ym1)/abs(xm-xm1)); yd:=cos(k1)*2; xd:=sin(k1)*2; end; if x=a then moveto (round(xm),round(ym)) else begin lineto (round(xm),round(ym)); line(round(xm1+xd),round(ym1+yd),round(xm+xd),round(ym+yd)); end; xm1:=xm;ym1:=ym; end; setlinestyle(0,0,1); settextstyle(2,0,2); setcolor(white); r:=round(yt/7); for i:=1 to 6 do begin line(xe-2,i*r,xe,i*r); yr:=(y0-i*r)/ky; str(yr:2:3,s); outtextxy(xe+3,i*r,s); end; r:=round(xt/5); for i:=0 to 5 do begin line(i*r+20,ye-2,i*r+20,ye+2); x:=(i*r+20-x0)/kx; str(x:2:3,s); outtextxy(i*r+20,ye+3,s); end; outtextxy(xe,10,'Y'); outtextxy(xt+30,ye-5,'X'); x0:=120; y0:=120; xc:=x0; yc:=y0-90; r:=90; x1[1]:=xc-12; y1[1]:=yc-12; x1[2]:=xc-12; y1[2]:=yc+12; x1[3]:=xc+12; y1[3]:=yc+12; x1[4]:=xc+12; y1[4]:=yc-12; a:=0; a1:=0; setlinestyle(0,0,1); rectangle(50,50,291,281); setviewport(51,51,290,280,clipoff); repeat begin clearviewport; xc1:=round(xc*cos(a)+yc*sin(a)+x0*(1-cos(a))-y0*sin(a)); yc1:=round(-xc*sin(a)+yc*cos(a)+y0*(1-cos(a))+x0*sin(a)); x1[1]:=xc1-12; y1[1]:=yc1-12; x1[2]:=xc1-12; y1[2]:=yc1+12; x1[3]:=xc1+12; y1[3]:=yc1+12; x1[4]:=xc1+12; y1[4]:=yc1-12; for i:=1 to 4 do begin x2[i]:=round(x1[i]*cos(a1)+y1[i]*sin(a1)+xc1*(1-cos(a1))-yc1*sin(a1)); y2[i]:=round(-x1[i]*sin(a1)+y1[i]*cos(a1)+yc1*(1-cos(a1))+xc1*sin(a1)); if i>1 then line(x2[i-1],y2[i-1],x2[i],y2[i]); if i=4 then line(x2[i],y2[i],x2[1],y2[1]); end; floodfill(round((x2[3]+x2[1])/2),round((y2[3]+y2[1])/2),white); circle(x0,y0,r); a:=a+0.02; a1:=a1+0.1; delay(10000); end; until KeyPressed; end.
Антиботан аватар за замовчуванням

08.02.2013 12:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!