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)21 isin_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)30 isin(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)43 icos(int rad)
44 {
45 	return isin(ANGLE_PI / 2 - rad);
46 }
47 
48 
49 #endif
50