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; arv:=6; d:=detect; initgraph(d, m, ''); keskp.x:=getmaxx div 2; keskp.y:=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)); end; end; begin algus; nurk1:=0; repeat setcolor(black); joonista(p2, keskp, arv); keera(p, p2, arv, 0.3, nurk1); setcolor(white); joonista(p2, keskp, arv); delay(50); nurk1:=nurk1+Pi/60; until keypressed; readln; closegraph; end.