home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Snippets / Trig Table Maker / TrigTableMaker.c < prev   
Encoding:
C/C++ Source or Header  |  1994-01-12  |  2.2 KB  |  102 lines  |  [TEXT/KAHL]

  1.  
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <console.h>
  5.  
  6. //--------------------------------------------------------  ToolBoxInit
  7.  
  8. void ToolBoxInit (void)
  9.  
  10. {
  11.     short        count;
  12.     
  13.     InitGraf(&thePort);
  14.     InitFonts();
  15.     FlushEvents(everyEvent, 0);
  16.     InitWindows();
  17.     InitMenus();
  18.     TEInit();
  19.     InitDialogs(0L);
  20.     InitCursor();
  21.     
  22.     MoreMasters();
  23.     MoreMasters();
  24.     MoreMasters();
  25.     MoreMasters();
  26.     MoreMasters();
  27. }
  28.  
  29. //--------------------------------------------------------  DebugNum
  30.  
  31. void DebugNum (long value)
  32.  
  33. {
  34.     Str255        theString;
  35.     
  36.     NumToString(value, (StringPtr)&theString);
  37.     DebugStr(theString);    
  38. }
  39.  
  40. //--------------------------------------------------------  DumpToResEditFile
  41.  
  42. void DumpToResEditFile (StringPtr fileName, ResType type, Ptr data, long dataSize)
  43.  
  44. {
  45.     Handle        newResource;
  46.     OSErr        theErr;
  47.     short        vRefNum = 0;
  48.     short        iFileRef;
  49.     
  50.     theErr = Create(fileName, vRefNum, 'RSED', 'rsrc');
  51.     if (theErr != noErr)
  52.         DebugStr("\pCouldn't Create()");
  53.     
  54.     CreateResFile(fileName);
  55.     if (ResError() != noErr)
  56.         DebugStr("\pCouldn't CreateResFile()");
  57.     
  58.     iFileRef = OpenResFile(fileName);
  59.     if ((ResError() != noErr) || (iFileRef == -1))
  60.         DebugStr("\pCouldn't OpenResFile()");
  61.     
  62.     if (PtrToHand(data, &newResource, dataSize) != noErr)
  63.             DebugStr("\pCouldn't PtrToHand()");
  64.     AddResource(newResource, type, 128, "\p");
  65.     ChangedResource(newResource);
  66. }
  67.  
  68. //--------------------------------------------------------  main
  69.  
  70. void main (void)
  71.  
  72. {
  73.     #define        kMaxDegrees            3600
  74.     #define        kAngleScale            8192.0
  75.     #define        kPi                     3.14159
  76.     
  77.     double        sinNumber, cosNumber, realAngle;
  78.     long        dummyLong;
  79.     short        i;
  80.     short        sinTable[kMaxDegrees];
  81.     short        cosTable[kMaxDegrees];
  82.     
  83.     ToolBoxInit();
  84.     console_options.pause_atexit = 1;
  85.     
  86.     for (i = 0; i < kMaxDegrees; i++)
  87.     {
  88.         realAngle = (double)i * (double)kPi / (double)kMaxDegrees;
  89.         sinNumber = sin(realAngle) * (double)kAngleScale;
  90.         cosNumber = cos(realAngle) * (double)kAngleScale;
  91.         
  92.         sinTable[i] = (short)sinNumber;
  93.         cosTable[i] = (short)cosNumber;
  94.         
  95.         printf("Sin %d \n", sinTable[i]);
  96.         printf("Cos %d \n", cosTable[i]);
  97.     }
  98.     Delay(600, &dummyLong);
  99.     
  100.     DumpToResEditFile ("\pSin Table", 'sin ', (Ptr)&sinTable, sizeof(sinTable));
  101.     DumpToResEditFile ("\pCos Table", 'cos ', (Ptr)&cosTable, sizeof(cosTable));
  102. }