uses graph, crt; type punkt=record x: integer; y: integer; z: integer; end; punktid= array[1..100] of punkt; var p, p2 : punktid; keskp: punkt; arv: integer; nurk1, nurk2: real; procedure algus; var d, m: integer; begin p[1].x:=0; p[1].Y:=0; p[1].z:=100; p[2].x:=100; p[2].Y:=0; p[2].z:=0; p[3].x:=0; p[3].Y:=100; p[3].z:=0; p[4].x:=0; p[4].Y:=0; p[4].z:=0; p[5].x:=100; p[5].Y:=0; p[5].z:=0; p[6].x:=0; p[6].Y:=0; p[6].z:=100; p[7].x:=0; p[7].y:=100; p[7].z:=0; {p[8].x:=0; p[8].y:=0; p[8].z:=100; p[9].x:=0; p[9].y:=0; p[9].z:=0; p[10].x:=100; p[10].y:=0; p[10].z:=100;} arv:=9; d:=detect; initgraph(d, m, ''); keskp.x:=0{getmaxx div 2}; keskp.y:=450{getmaxy div 2}; end; procedure joonista(p: punktid; kp: punkt; kogus: integer); var i: integer; begin for i:=2 to kogus do begin line(kp.x+p[i-1].x, kp.y+p[i-1].y, kp.x+p[i].x, kp.y+p[i].y); end; line(kp.x+p[arv].x, kp.y+p[arv].y, kp.x+p[1].x, kp.y+p[1].y); end; procedure keera(pp: punktid; var pp2: punktid; kogus: integer; x1, x2: real); var i: integer; begin for i:=1 to kogus do begin pp2[i].x:=round(pp[i].x*cos(x1)+pp[i].y*sin(x1)); pp2[i].y:=round(-pp[i].x*sin(x1)+pp[i].y*cos(x1)); pp2[i].z:=pp[i].z; end; for i:=1 to kogus do begin pp2[i].x:=round(pp2[i].x*cos(x2)+pp2[i].z*sin(x2)); pp2[i].z:=round(-pp2[i].x*sin(x2)+pp2[i].z*cos(x2)); pp2[i].y:=round(pp2[i].y*cos(x2)+pp2[i].y*sin(x2)); end; end; begin algus; nurk1:=0; repeat setbkcolor(0); setcolor(14); joonista(p2, keskp, arv); keera(p, p2, arv, 0.3, nurk1); setcolor(4); joonista(p2, keskp, arv); delay(50); nurk1:=nurk1+Pi/60; keskp.x:=keskp.x+2; keskp.y:=keskp.y-2; until keypressed; readln; closegraph; end.