home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 607.lha / WizardClock_v1.20 / source.lzh / Sinus.h < prev    next >
Text File  |  1991-10-30  |  904b  |  43 lines

  1. /*  QuickSin v1.00
  2.  *  written by Stefan Zeiger of ! WIZARD WORKS !
  3.  *  13-Aug-1991
  4.  *  PUBLIC DOMAIN
  5.  *  Compiler: SAS/C 5.10a
  6.  *
  7.  *  Parameter : [angle] : the angle in steps of 6 degrees (60 means a full
  8.  *                        circle (=360 degrees)).
  9.  *  Return    : The sin/cos value multiplied with 10000 as a signed LONG
  10.  *              number.
  11.  */
  12.  
  13.  
  14.  
  15. UWORD ___sin6list[]=
  16. {
  17.   0000,1045,2079,3090,4067,
  18.   5000,5877,6691,7431,8090,
  19.   8660,9135,9510,9781,9945,
  20.   10000
  21. };
  22.  
  23. LONG __regargs lsin6(WORD);
  24. LONG __regargs lcos6(WORD);
  25.  
  26. LONG __regargs lsin6(WORD angle)
  27. {
  28.   LONG value;
  29.   BOOL negsign=FALSE;
  30.   while(angle<0) angle+=60;
  31.   while(angle>=60) angle-=60;
  32.   if(angle>=30) { angle-=30; negsign=TRUE; }
  33.   if(angle>15) { angle-=15; angle=15-angle; }
  34.   value=___sin6list[angle];
  35.   if(negsign==TRUE) value=0L-value;
  36.   return(value);
  37. }
  38.  
  39. LONG __regargs lcos6(WORD angle)
  40. {
  41.   return(lsin6(15-angle));
  42. }
  43.