»ï°¢ÇÔ¼öÀÇ ±¸Çö
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>trigonometric



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

  1. »ï°¢ÇÔ¼ö (trigonometric function)
  2. »ï°¢ÇÔ¼öÀÇ ±¸Çö
  3. minzkn
  4. Version 0.1
  5. 2005/08/23

¼³¸í

Å×ÀÏ·¯ Àü°³¹ýÀ» ÀÌ¿ëÇÑ »ï°¢ÇÔ¼öÀÇ ±¸Çö... ¼öÇн𣿡 ÇѱͷΠÈê·Áµé¾ú´ø ±×°ÍÀÌ ³ª¿É´Ï´Ù. ±×·¯³ª ¹®Á¦´Â ÇѱͷΠÈê·È´ø°Ô ÈÄȸ½º·´´Ù´Â°Í.

»ç¿ë¹æ¹ý

  1. µ¡¼ÀÁ¤¸®
sin(x + y) = sin(x) * cos(y) + cos(x) * sin(y)  
sin(x - y) = sin(x) * cos(y) - cos(x) * sin(y)  
cos(x + y) = cos(x) * cos(y) - sin(x) * sin(y)  
cos(x - y) = cos(x) * cos(y) + sin(x) * sin(y)  
tan(x + y) = (tan(x) + tan(y)) / (1 - tan(x) * tan(y))  
tan(x - y) = (tan(x) - tan(y)) / (1 + tan(x) * tan(y))  
 
  1. ¹è°¢Á¤¸®
sin(2 * x) = 2 * sin(x) * cos(x)  
cos(2 * x) = cos©÷(x) - sin©÷(x) = 2 * cos©÷(x) - 1 = 1 - 2 * sin©÷(x)  
tan(2 * x) = (2 * tan(x)) / (1 - tan©÷(x))  
 
  1. ¹Ý°¢ÀÇ Á¤¸®
sin©÷(x / 2) = (1 - cos(x)) / 2  
cos©÷(x / 2) = (1 + cos(x)) / 2  
tan©÷(x / 2) = (1 - cos(x)) / (1 + cos(x))  
 
  1. »ï°¢ÇÔ¼ö °ø½Ä ÃѰýÁ¤¸®
sin(-¥è)=-sin¥è, cos(-¥è)=cos¥è, tan(-¥è)=-tan¥è  
sin©÷¥è+cos©÷¥è=1, sec©÷¥è-tan©÷¥è=1, csc©÷¥è-cot©÷¥è=1  
sin(¥ð/2-¥è)=cos¥è, sin(¥ð/2+¥è)=cos¥è, sin(¥è¡¾¥ð/2)=¡¾cos¥è  
cos(¥ð/2-¥è)=sin¥è, cos(¥ð/2+¥è)=-sin¥è, cos(¥è¡¾¥ð/2)=¨®sin¥è  
sin(¥ð-¥è)=sin¥è, sin(¥ð+¥è)=-sin¥è, sin(¥è¡¾¥ð)=-sin¥è  
cos(¥ð-¥è)=-cos¥è, cos(¥ð+¥è)=-cos¥è, cos(¥è¡¾¥ð)=-cos¥è  
sin(¥á¡¾¥â)=sin¥ácos¥â¡¾cos¥ásin¥â, cos(¥á¡¾¥â)=cos¥ácos¥â¨®sin¥ásin¥â  
tan(¥á+¥â)=tan¥á+tan¥â/1-tan¥átan¥â, tan(¥á-¥â)=tan¥á-tan¥â/1+tan¥átan¥â  
sin2¥è=2sin¥ècos¥è  
cos2¥è=cos©÷¥è-sin©÷¥è=2cos©÷¥è-1=1-2sin©÷¥è, tan2¥è=2tan¥è/1-tan©÷¥è  
sin©÷¥è/2=1-cos¥è/2, cos©÷¥è/2=1+cos¥è/2, tan©÷¥è/2=1-cos¥è/1+cos¥è  
sin¥ácos¥â=1/2{sin(¥á+¥â)+sin(¥á-¥â)}  
cos¥ácos¥â=1/2{cos(¥á+¥â)+cos(¥á-¥â)}  
sin¥ásin¥â=-1/2{cos(¥á+¥â)-cos(¥á-¥â)}  
sin¥á+sin¥â=2sin(¥á+¥â/2)cos(¥á-¥â/2)  
sin¥á-sin¥â=2cos(¥á+¥â/2)sin(¥á-¥â/2)  
cos¥á+cos¥â=2cos(¥á+¥â/2)cos(¥á-¥â/2)  
cos¥á-cos¥â=-2sin(¥á+¥â/2)sin(¥á-¥â/2)  
 

ÄÚµå

/*--------------------------------------------------------------------------*/  
/* Purpose:        sin, cos                                                 */  
/*--------------------------------------------------------------------------*/  
 
#define twoopi   0.636619772367581  
#define p0   0.135788409787738e8  
#define p1  -0.494290810090284e7  
#define p2   0.440103053537527e6  
#define p3  -0.138472724998245e5  
#define p4   0.145968840666577e3  
#define q0   0.864455865292253e7  
#define q1   0.408179225234330e6  
#define q2   0.946309610153821e4  
#define q3   0.132653490878614e3  
 
static double sinus(double arg, int quad)  
{  
   double e, f;  
   int k;  
   double ysq;  
   double x, y;  
   double temp1, temp2;  
   x = arg;  
   if (x < 0) {  
    x = -x;  
    quad = quad + 2;  
   }  
   x = x * twoopi; /*underflow?*/  
   if (x > 32764) {  
    y = modf(x,&e);  
    e = e + quad;  
    modf(0.25*e,&f);  
    quad = e - 4*f;  
   }  
   else{  
    k = x;  
    y = x - k;  
    quad = (quad + k) & 03;  
   }  
   if (quad & 01)  
    y = 1-y;  
   if (quad > 1)  
    y = -y;  
   ysq = y*y;  
   temp1 = ((((p4*ysq+p3)*ysq+p2)*ysq+p1)*ysq+p0)*y;  
   temp2 = ((((ysq+q3)*ysq+q2)*ysq+q1)*ysq+q0);  
   return(temp1/temp2);  
}  
 
/*  
    cos() ÇÔ¼ö´Â xÀÇ ÄÚ»çÀÎ °ª(¶óµð¾È °ª)À» °è»êÇÕ´Ï´Ù.  
*/  
 
double cos(double x)  
{  
   if (x < 0.0) x = -x;  
   return (sinus(x, 1));  
}  
 
/*  
   sin() ÇÔ¼ö´Â xÀÇ »çÀÎ °ª(¶óµð¾È °ª)À» °è»êÇÕ´Ï´Ù.  
*/  
 
double sin(double x)  
{  
   return (sinus(x, 0));  
}  
 
/*  
### ÁÖÀÇ »çÇ× ###  
À§ÀÇ sinus ÇÔ¼ö¿¡¼­ »ç¿ëÇÑ modf ÇÔ¼ö´Â ÁÖ¾îÁø ¼ö¸¦  
Á¤¼öºÎºÐ°ú ¼Ò¼öºÎºÐÀ¸·Î ³ª´©¾î ÁÖ´Â ÇÔ¼öÀÔ´Ï´Ù.  
¿¹¸¦ µé¾î¼­  
y = modf(x,&e);  
¶ó°í Çϸé xÀÇ Á¤¼öºÎºÐÀÌ e º¯¼ö¿¡ µé¾î°¡°í ¼Ò¼öºÎºÐÀÌ y º¯¼ö¿¡ µé¾î°¡°Ô µË´Ï´Ù.  
*/ 
 
//¹üÀ§´Â -PI ~ PI ·Î µÓ´Ï´Ù.  
double Sine(double x)  
{  
      double sum = x;  
      double result = x;  
      double fact = 1.0f;  
      double x2 = x*x*-1.0f;;  
      //À¯ÇÑÇÑ Å×ÀÏ·¯ ±Þ¼ö Àü°³  
      for(int i=1;i<9;++i)  
      {  
            fact *= ((2*i) * (2*i+1));  
            result *= x2;  
            sum += (result / fact);  
      }  
      return sum;  
} 
 

º¯°æ»çÇ×


2005/08/23

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.