/*graficacion en 3d Perspectiva conica D distancia del observador (x3d,y3d,z3d) punto en 3d (x2d,y2d) punto en 2d x2d=y3d*D/z3d y2d=x3d*D/z3d Fernando Galindo Soria 19/iv/98 Cd. de Mexico */ #include /*#include */ #include /*#include #include #include #include */ float D=30,x2d,y2d,x2d1,y2d1; float f3d[][3]={50,100,10, 200,100,10, 200,200,10, 50,200,10, 50,100,10, 50,100,15, 200,100,15, 200,200,15, 50,200,15, 50,100,15, 50,100,10, 200,100,10, 200,100,15, 200,200,15, 200,200,10, 50,200,10, 50,200,15, 50,100,15, 50,100,10}; float f3d1[][3]={125,200,12, 125,150,12, 50,100,10, 125,150,12, 200,100,10, 125,150,12, 50,100,15, 125,150,12, 200,100,15}; void main() { int i; int gd=DETECT,gm; initgraph(&gd,&gm,""); for (i=0;i<18;i++) line(f3d[i][0]*D/(D-f3d[i][2]),f3d[i][1]*D/(D-f3d[i][2]),f3d[i+1][0]*D/(D-f3d[i+1][2]),f3d[i+1][1]*D/(D-f3d[i+1][2])); setcolor(2); for (i=0;i<8;i++) line(f3d1[i][0]*D/(D-f3d1[i][2]),f3d1[i][1]*D/(D-f3d1[i][2]),f3d1[i+1][0]*D/(D-f3d1[i+1][2]),f3d1[i+1][1]*D/(D-f3d1[i+1][2])); getch(); closegraph(); }