1 /* 2 XMascot Ver 2.6 3 Copyright(c) 1996,1997 Go Watanabe go@cclub.tutcc.tut.ac.jp 4 Tsuyoshi IIda iida@cclub.tutcc.tut.ac.jp 5 */ 6 7 /* ������ sin/cos �ؿ� */ 8 9 #ifndef USE_DOUBLE 10 11 #include <stdio.h> 12 #include <stdlib.h> 13 #include <math.h> 14 15 #include "xmascot.h" 16 17 int *sin_tbl; 18 19 /* �ơ��֥����� */ 20 void isin_init(void)21isin_init(void) 22 { 23 int i; 24 sin_tbl = (int *) XtMalloc((ANGLE_PI / 2 + 1) * sizeof(int)); 25 for (i = 0; i <= ANGLE_PI / 2; i++) 26 sin_tbl[i] = sin(i * RAD) * 256; 27 } 28 29 int isin(int rad)30isin(int rad) 31 { 32 if (rad < 0) 33 return -isin(-rad); 34 else if (rad > ANGLE_PI) 35 return -isin(ANGLE_PI * 2 - rad); 36 else if (rad > ANGLE_PI / 2) 37 return sin_tbl[(int) (ANGLE_PI - rad)]; 38 else 39 return sin_tbl[rad]; 40 } 41 42 int icos(int rad)43icos(int rad) 44 { 45 return isin(ANGLE_PI / 2 - rad); 46 } 47 48 49 #endif 50