program backtotheworld; uses crt,graph; const cube:array[1..12,1..2,1..3] of integer = ( ((-10,-10,-10),(10,-10,-10)), ((-10,-10,-10),(-10,10,-10)), ((-10,10,-10),(10,10,-10)), ((10,-10,-10),(10,10,-10)), ((-10,-10,10),(10,-10,10)), ((-10,-10,10),(-10,10,10)), ((-10,10,10),(10,10,10)), ((10,-10,10),(10,10,10)), ((-10,-10,10),(-10,-10,-10)), ((-10,10,10),(-10,10,-10)), ((10,10,10),(10,10,-10)), ((10,-10,10),(10,-10,-10)) ); var gm,gd,i,i1,r,b:integer; fov:integer; cube1:array[1..12,1..2,1..2] of integer; begin gd:=detect;initgraph(gd,gm,'c:\bp\bgi'); fov:=10; repeat for r:=1 to 2 do begin for b:=1 to 12 do begin cube1[b,r,1]:=cube[b,r,1]*fov div cube[b,r,3]+320; cube1[b,r,2]:=cube[b,r,2]*fov div cube[b,r,3]+240; end; end; setcolor(0); bar(0,0,640,480); setcolor(1); for r:=1 to 2 do begin for b:=1 to 11 do begin line(cube1[b,r,1],cube1[b,r,2],cube1[b,r+1,1],cube1[b,r+1,2]); end; end; for r:=1 to 2 do begin for b:=1 to 12 do begin putpixel(cube1[b,r,1],cube1[b,r,2],red); end; end; fov:=fov+1; delay(20000); until keypressed; end.