home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / 4416 / 3DLIB20 / DEMO3D.PAS < prev    next >
Pascal/Delphi Source File  |  1993-10-07  |  4KB  |  161 lines

  1. (*******************************************************************)
  2. (* 3dLIB Macro Program 3dPas.pas                                   *)
  3. (* Generated on the 15-3-1992 Sunday, 1992:3:15                    *)
  4. (* (c) 1992, Loewy Ron.                                            *)
  5. (*******************************************************************)
  6.  
  7. program macronewdemo;
  8.  
  9. uses
  10.     crt
  11.     ,graph
  12.     ,rtObj
  13.     ,project3
  14.     ,hdr3d
  15.     ,ctm3d
  16.     ;
  17. (*******************************************************************)
  18. (* Global Variables and Constants                                  *)
  19. (*******************************************************************)
  20. var
  21.     i,
  22.     element    : integer;
  23.     ee    : word;
  24.     obj    : array [ 1 .. 9 ] of baseObjectPtr;
  25.     ch    : char;
  26.     V0
  27.     ,V1
  28.     ,V2
  29.     ,V3
  30.     ,V4
  31.     ,V5
  32.     ,V6
  33.     ,V7
  34.     ,V8
  35.     ,V9    : real;
  36.     I0
  37.     ,I1
  38.     ,I2
  39.     ,I3
  40.     ,I4
  41.     ,I5
  42.     ,I6
  43.     ,I7
  44.     ,I8
  45.     ,I9    : integer;
  46. const
  47.     zeroPoint    : point3d = (x:0.0; y:0.0; z:0.0);
  48.  
  49. (*******************************************************************)
  50. (* error                                                           *)
  51. (*******************************************************************)
  52. procedure error(i : byte; j : word);
  53. var
  54.     errStr    : string[20];
  55.     a    :char;
  56. begin
  57.     restoreCrtMode;
  58.     case i of
  59.         1 : errStr := 'I/O error #'
  60.         else errStr := 'General error #'
  61.     end; { case }
  62.     writeln;
  63.     write(errStr);
  64.     if (j <> 0) then
  65.         writeln(j)
  66.     else
  67.         writeln;
  68.     a := readKey;
  69.     closeGraph;
  70.     halt(1)
  71. end; {error}
  72.  
  73. (*******************************************************************)
  74. (* power                                                           *)
  75. (*******************************************************************)
  76. function power(a, b : real) : real;
  77. begin
  78.     power := exp(b * ln(a));
  79. end; {power}
  80.  
  81. (*******************************************************************)
  82. (* MAIN                                                            *)
  83. (*******************************************************************)
  84. begin
  85.    outTextXY(80, 10, '3dLib demo program, (c) 1993, Ron Loewy.');
  86.     resetPerspective;
  87.     obj[1] := new(obj3dPtr, open('pyr.3D2', zeroPoint, maxColor));
  88.     ee := obj[1]^.load;
  89.     if (ee <> 0) then
  90.         error(1, ee);
  91.     obj[1]^.goto3DPos(trunc( 0), trunc( 0), trunc( 0));
  92.     resetPerspective;
  93.     for i0 := 1 to trunc( 15) do begin
  94.       setcolor(1 + random(maxColor));
  95.         obj[1]^.paint;
  96.         obj[1]^.rotate(z, trunc( 12));
  97.     end; { loop }
  98.     for i0 := 1 to trunc( 60) do begin
  99.       setcolor(1 + random(maxColor));
  100.         obj[1]^.paint;
  101.         obj[1]^.rotate(x, trunc( 6));
  102.         obj[1]^.paint;
  103.     end; { loop }
  104.     obj[1]^.paint;
  105.     obj[1]^.rotate(z, trunc( 180));
  106.     for i0 := 1 to trunc( 60) do begin
  107.       setcolor(1 + random(maxColor));
  108.         obj[1]^.paint;
  109.         obj[1]^.rotate(y, trunc( 6));
  110.         obj[1]^.paint;
  111.     end; { loop }
  112.     for i0 := 1 to trunc( 120) do begin
  113.       setcolor(1 + random(maxColor));
  114.         obj[1]^.paint;
  115.         obj[1]^.rotate(x, trunc( 6));
  116.         obj[1]^.paint;
  117.         obj[1]^.paint;
  118.         obj[1]^.rotate(y, trunc( 6));
  119.         obj[1]^.paint;
  120.     end; { loop }
  121.     for i0 := 1 to trunc( 120) do begin
  122.       setcolor(1 + random(maxColor));
  123.         obj[1]^.paint;
  124.         obj[1]^.rotate(x, trunc( 3));
  125.         obj[1]^.paint;
  126.         obj[1]^.paint;
  127.         obj[1]^.rotate(y, trunc( 3));
  128.         obj[1]^.paint;
  129.         obj[1]^.paint;
  130.         obj[1]^.rotate(z, trunc( 6));
  131.         obj[1]^.paint;
  132.     end; { loop }
  133.     for i0 := 1 to trunc( 30) do begin
  134.       setcolor(1 + random(maxColor));
  135.         obj[1]^.paint;
  136.         obj[1]^.rotate(z, trunc( 6));
  137.         obj[1]^.paint;
  138.     end; { loop }
  139.     for i0 := 1 to trunc( 120) do begin
  140.       setcolor(1 + random(maxColor));
  141.         obj[1]^.paint;
  142.         obj[1]^.rotate(x, trunc( 3));
  143.         obj[1]^.paint;
  144.         obj[1]^.paint;
  145.         obj[1]^.rotate(y, trunc( 6));
  146.         obj[1]^.paint;
  147.         obj[1]^.paint;
  148.         obj[1]^.rotate(z, trunc( 3));
  149.         obj[1]^.paint;
  150.     end; { loop }
  151.     for i0 := 1 to trunc( 450) do begin
  152.       setcolor(1 + random(maxColor));
  153.         obj[1]^.paint;
  154.         obj[1]^.move(x,  -1);
  155.         obj[1]^.rotate(x, trunc( 3));
  156.         obj[1]^.paint;
  157.     end; { loop }
  158.     ch := readKey;
  159.     closeGraph;
  160. end.
  161.