вышло конешно тупо - портирование прямое : тоесть то что нереализовано тут, просто навязавается

program example_3d;
var vx,vy,vz,d:real;
* *run:boolean;
* *speed:real;
nx,ny,nx2,ny2:integer;
procedure b3d(o,x3d,y3d,z3d,vx,vy,vz,distance:real);
* *var ty,tz,tx,ox:real;
* *begin
* *ty := ((y3d * Cos(vx)) - (z3d * Sin(vx)));
* *tz := ((y3d * Sin(vx)) + (z3d * Cos(vx)));
* *tx := ((x3d * Cos(vy)) - (tz * Sin(vy)));
* *tz := ((x3d * Sin(vy)) + (tz * Cos(vy)));
* *ox := tx;
* *tx := ((tx * Cos(vz)) - (ty * Sin(vz)));
* *ty := ((ox * Sin(vz)) + (ty * Cos(vz)));
if o=0 then
begin
* *nx := Trunc(512 * (tx) / (distance - (tz)) + 320);
* *ny := Trunc(240 - (512 * ty) / (distance - (tz)));
end;
if o=1 then
begin
* *nx2 := Trunc(512 * (tx) / (distance - (tz)) + 320);
* *ny2 := Trunc(240 - (512 * ty) / (distance - (tz)));
end;
end;
procedure line3d(zl1x,zl1y,zl1z,zl2x,zl2y,zl2z,vx,vy,vz,d:real);
var m1,m2:integer;
* begin
m1:=280;
m2:=200;
* b3d(0,zl1x,zl1y,zl1z,vx,vy,vz,d);
* b3d(1,zl2x,zl2y,zl2z,vx,vy,vz,d);
* drawline(nx-m1,ny-m2,nx2-m1,ny2-m2);
*
end;
procedure cube(vx,vy,vz,d:real);
begin
* line3d(0,0,0,1,0,0,vx,vy,vz,d);
* line3d(0,0,0,0,1,0,vx,vy,vz,d);
* line3d(0,0,0,0,0,1,vx,vy,vz,d);
* line3d(1,0,0,1,1,0,vx,vy,vz,d);
* line3d(1,0,0,1,0,1,vx,vy,vz,d);
* line3d(0,0,1,1,0,1,vx,vy,vz,d);
* line3d(0,0,1,0,1,1,vx,vy,vz,d);
* line3d(0,1,1,1,1,1,vx,vy,vz,d);
* line3d(1,1,0,1,1,1,vx,vy,vz,d);
* line3d(0,1,0,1,1,0,vx,vy,vz,d);
* line3d(0,1,0,0,1,1,vx,vy,vz,d);
* line3d(1,0,1,1,1,1,vx,vy,vz,d);
end;
begin
* d:=20;
*
* speed:=0.04;
* vx:=0.2;
* vy:=0.5;
* vz:=0;
* run:=true;
*
* nx:=0;
* ny:=0;
* nx2:=0;
* ny2:=0;
* while run=true do
* begin
* if getKeyPressed = KE_KEY8 then vy:=vy+speed;
* if getKeyPressed = KE_KEY2 then vy:=vy-speed;
*
* if getKeyPressed = KE_KEY4 then vx:=vx-speed;
* *
* if getKeyPressed = KE_KEY6 then vx:=vx+speed;
* if getKeyPressed = KE_KEY0 then run:=false;
setcolor(255,255,255);
*fillRect(0, 0, 200, 200);
setcolor(0,0,0);
* cube(vx,vy,vz,d);
* repaint;
*
*
* end;
end.