[comp.sys.ibm.pc] 3D Animation Progrm

dalegass@dalcs.UUCP (02/05/87)

Awhile ago I posted a 3d animation program to the net in uuencoded ARC
format.  Quite a few people have sent me mail requesting an unARCed version.
So here it is...  The previously posted ARC contained only two files,
a README file, and 3d.exe.

The README file is below, followed by the uuencoded 3D.EXE file.

---------------------------- README -------------------------------

                                3D Animation Program
                                    By Dale Gass


          The program  '3d' performs  a 360 degree rotation on each of five
          objects, storing the images in memory, and later  projecting them
          much faster giving true three dimensional animation.

          The program  requires an  IBM-PC or  compatible, with a CGA (i.e.
          640x200 video ram @ segment b800h,) and preferrably 640K ram.

          The program is invoked by
               3d {stepsize}
          where stepsize is an optional size  (in degrees)  of the  size of
          each step  in the  rotation (defaults to 5.)  The finer (smaller)
          this step, the greater the memory  required to  store the images.
          The coarser  (larger) this  step, the  faster the final animation
          will be.

          In order to store the full  360 degree  rotations of  each of the
          five objects  at the default resoluation (5 degree steps) a great
          deal of memory is required.  With 640K a resolution  of 4  may be
          chosen, and this fills almost all of the memory.

          If the  program runs  out of memory (or any key is hit before the
          rotations are finished) the program will project what it was able
          to accomplish.   So  you can choose a step size of 1 if you wish,
          but only one figure  will  be  created,  as  the  memory  will be
          filled.

          The creation  of images can be halted at any time by pressing any
          key.  The program would then  project the  images it  was able to
          create.

          Once  the  creation  of  images  is complete (or aborted) and the
          projection is being performed, several keys  have effect  on this
          projects.
               '-' Slows down the speed of projection
               '+' Speeds up the projects
               RET Exits program
               spc Single steps images (any key resumes continuous proj.)





          If anybody  would like the 'Dalhousie' logo replaced by something
          else (eg. company name) for demo purposes, I  will be  willing to
          install their logo for a fee of $75.00.

          C Source code is  available for  $100.   I've been flamed several
		times and got nasty mail about this price.   If you feel it's too 
		much,  just pretend  I didn't  offer it,   and enjoy  the program 
		itself...


          Please feel free to mail any questions/comments to me as follows:

          UUCP:     {seismo|watmath|utai|garfield)!dalcs!dalegass.UUCP
                                             or dalegass @ dalcs.UUCP
                    ...!dalcs!dalcsug!dalegass.UUCP  
                                             or dalegass@dalcsug.UUCP
          CDN:      dalegass@cs.dal.cdn
          CSNET:    dalegass%cs.dal.cdn@ubc.csnet
          ARPA:     dalegass%cs.dal.cdn%ubc.csnet@CSNET-RELAY.ARPA

          or through the trusty Canadian Postal Service:

          Dale Gass
          R.R. # 1,
          Brookfield, Nova Scotia
          Canada
          B0N 1C0


----------------------- uuencoded 3D.EXE ---------------------------
!!!!!!!!!!!!!!!!!!!!!!!!!!!! CUT HERE and uudecode !!!!!!!!!!!!!!!!!!!!!

begin 600 3d.exe
M35I0 !,  0 @  ()___= 8Z4  !8&   (         !9&               
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                      !5B^R+1@0] 0!^+\1>!B;_=P8F_W<$Z,T6@\0$
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
MU/X  &K_  #4_OH :O_Z +7_!O]+  ;_M?_Z $L ^@"6  ;_+ $&_Y8 ^@ L
M ?H =P$&_PT"!O]W 0  #0(  '<!^@ - OH 6 (&_Z,"!O_N @;_6 +Z *,"
M^@#N OH .0,&_\\#!O\Y P  A ,  #D#^@#/ _H    !  $  @ "  0 !  #
M  ,    (  4 !0 )  8 !P *  L "P ,  T $0 . !( #P 0 !, %  4 !8 
M%@ 5 !4 $P 7 !D &0 : !H &  < !L &P = !T '@ > "  (  ? "$ (P B
M "4 )  F "@ )P G "L *P L "D *@    "X  !X!.\(9@W<$5 6PAHS'Z$C
M#"AT+-DP.C66.>\]0D*01ME*'$]84X]7OEOF7P=D(&@Q;#EP.70O>!Q\ (#:
M@ZF';8LGC]:2>981FIR=&Z&.I/.G3*N7KM6Q!;4GN#J[/[XUP1O$\\:[R7/,
M',^TT3S4L]8:V6_;M-WGWPGB&>07Y@3HWNFFZUSM_^Z0\ [R>//0]!7V1_=E
M^'#Y:/I,^QS\V?R"_1C^F?X'_V#_IO_8__;___\ (" @(" @(" @,# P,# @
M(" @(" @(" @(" @(" @(""00$! 0$! 0$! 0$! 0$! # P,# P,# P,#$! 
M0$! 0$ )"0D)"0D! 0$! 0$! 0$! 0$! 0$! 0$! 4! 0$! 0 H*"@H*"@("
M @(" @(" @(" @(" @(" @("0$! 0"  CE3__P                      
M /__     @ !    !( 9 %1O;R!M86YY(&%R9W,N                    
M        ;!O=&PH-                                            
=                                        
 
end