uses graph, crt; type punkt=record x, y, z: real; end; tetr=record p: array[1..8] of punkt; end; var tt: tetr; abi, nurk: real; i, d, m, keskx, kesky: integer; begin d:= detect; initgraph(d, m, ''); tt.p[1].x:=90; tt.p[1].y:=90; tt.p[1].z:=0; tt.p[2].x:=-90; tt.p[2].y:=90; tt.p[2].z:=0; tt.p[3].x:=-90; tt.p[3].y:=-90; tt.p[3].z:=90; tt.p[4].x:= 90; tt.p[4].y:=-90; tt.p[4].z:=90; tt.p[5].x:=90; tt.p[5].y:=-10; tt.p[5].z:=180; tt.p[6].x:=90; tt.p[6].y:= 170; tt.p[6].z:=90; tt.p[7].x:=-90; tt.p[7].y:= 170; tt.p[7].z:=90; tt.p[8].x:=-90; tt.p[8].y:=-10; tt.p[8].z:=180; nurk:=Pi/50; keskx:=getmaxx div 2; kesky:=getmaxy div 2; repeat for i:=1 to 8 do begin abi:=tt.p[i].x; tt.p[i].x:= tt.p[i].x*cos(nurk)-tt.p[i].z*sin(nurk); {nn.p[i].y:= nn.p[i].x*cos(nurk)-nn.p[i].z*cos(nurk);} tt.p[i].z:= abi*sin(nurk)+tt.p[i].z*cos(nurk); end; cleardevice; line(keskx+round(tt.p[1].x), kesky+round(tt.p[1].y), keskx+round(tt.p[2].x), kesky+round(tt.p[2].y)); line(keskx+round(tt.p[2].x), kesky+round(tt.p[2].y), keskx+round(tt.p[3].x), kesky+round(tt.p[3].y)); line(keskx+round(tt.p[3].x), kesky+round(tt.p[3].y), keskx+round(tt.p[4].x), kesky+round(tt.p[4].y)); line(keskx+round(tt.p[4].x), kesky+round(tt.p[4].y), keskx+round(tt.p[5].x), kesky+round(tt.p[5].y)); line(keskx+round(tt.p[5].x), kesky+round(tt.p[5].y), keskx+round(tt.p[6].x), kesky+round(tt.p[6].y)); line(keskx+round(tt.p[6].x), kesky+round(tt.p[6].y), keskx+round(tt.p[7].x), kesky+round(tt.p[7].y)); line(keskx+round(tt.p[7].x), kesky+round(tt.p[7].y), keskx+round(tt.p[8].x), kesky+round(tt.p[8].y)); line(keskx+round(tt.p[8].x), kesky+round(tt.p[8].y), keskx+round(tt.p[3].x), kesky+round(tt.p[3].y)); line(keskx+round(tt.p[2].x), kesky+round(tt.p[2].y), keskx+round(tt.p[7].x), kesky+round(tt.p[7].y)); line(keskx+round(tt.p[6].x), kesky+round(tt.p[6].y), keskx+round(tt.p[1].x), kesky+round(tt.p[1].y)); line(keskx+round(tt.p[8].x), kesky+round(tt.p[8].y), keskx+round(tt.p[5].x), kesky+round(tt.p[5].y)); line(keskx+round(tt.p[1].x), kesky+round(tt.p[1].y), keskx+round(tt.p[4].x), kesky+round(tt.p[4].y)); setcolor(12); setlinestyle(0,0,3); delay(100); until keypressed; closegraph; end.