home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / FFILLY / Kouza12 / threed.tfy < prev   
Text File  |  1997-01-03  |  1KB  |  43 lines

  1. main(){
  2.     int dot,pic,width,height;
  3.     int i;
  4.     int x,y,z,px,py;
  5.     int ymin[],ymax[];
  6.     real pi;
  7.     width=640;
  8.     height=480;
  9.     pi=3.14159/180.0;
  10.     dot=LoadPic("1pixel.bmp");
  11.     pic=CreatePic(dot,width,height);
  12.     SetLineSize(1);
  13.     SetPaintColor(0xffffff);
  14.     DrawRect(pic,0,0,width,height);
  15.     SetPaintColor(0x000000);
  16.     DrawRect(pic,10,10,width-10,height-10);
  17.     SetPaintColor(0x00ff00);
  18.     OpenWin(pic);
  19.     for(i=0;i<640;i=i+1){
  20.         ymin[i]=499;
  21.         ymax[i]=0;
  22.     }
  23.     for(z=200;z>=-200;z=z-10){
  24.         for(x=-200;x<=200;x=x+1){
  25.             y=RealtoInt(Cos(Sqrt(InttoReal(x*x+z*z))*pi)*30.0
  26.                 +Cos(3.0*Sqrt(InttoReal(x*x+z*z))*pi));
  27.             px=RealtoInt(Cos(-30.0*pi)*InttoReal(x)
  28.                 +Sin(-30.0*pi)*InttoReal(z))+320;
  29.             py=250-RealtoInt(Cos(30.0*pi)*InttoReal(y)
  30.                 -(-Sin(-30.0*pi)*InttoReal(x)
  31.                 +Cos(-30.0*pi)*InttoReal(z)*Sin(30.0*pi)));
  32.             if(py<ymin[px]){
  33.                 ymin[px]=py;
  34.                 DrawLine(pic,px,py,px+1,py+1);
  35.             }
  36.             if(py>ymax[px]){
  37.                 ymax[px]=py;
  38.                 DrawLine(pic,px,py,px+1,py+1);
  39.             }
  40.         }
  41.     }
  42.     mes(LBDOWN){}
  43. }