今天在项目中涉及到了一个对图形进行一定角度的旋转的问题,这个角度需要根据相关坐标点进行计算得来,因此自然需要调用一些数学库内的一些函数,这些函数用起来并不难,但有些函数用的较少,关键时刻却想不起来,这里收藏一篇c++中常用的数学函数库的博文,此篇博文最大的亮点是对每个函数数学方面相关的知识有一个简短的说明,对于多年没用相关数学知识的童鞋是很有帮助的。


【转载自曲终】:http://rogee.cnblogs.com/



abs

原型:extern int abs(int x);

用法:#include <math.h>

功 能:求整数x的绝对值

说明:计算|x|, x不为负时返回x,否则返回-x

举例:

     // abs.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       int x;

       clrscr();        // clear screen

       x=-5;
       printf("|%d|=%d\n",x,abs(x));
       x=0;
       printf("|%d|=%d\n",x,abs(x));
       x=+5;
       printf("|%d|=%d\n",x,abs(x));

       getchar();
       return 0;
     }

相关函数:fabs


acos

原 型:extern float acos(float x);

用法:#include <math.h>

功 能:求x(弧度表示)的反余弦值

说明:x的定义域为[-1.01.0],值域为[0π]

举例:

     // acos.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=0.32;
       printf("acos(%.2f)=%.4f",x,acos(x));

       getchar();
       return 0;
     }

相关函数:asin,atan,atan2,sin,cos,tan



asin

原 型:extern float asin(float x);

用法:#include <math.h>

功 能:求x(弧度表示)的反正弦值

说明:x的定义域为[-1.01.0],值域为[-π/2+π/2]

举例:

     // asin.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=0.32;
       printf("asin(%.2f)=%.4f",x,asin(x));

       getchar();
       return 0;
     }

相关函数:acos,atan,atan2,sin,cos,tan



atan

原 型:extern float atan(float x);

用法:#include <math.h>

功 能:求x(弧度表示)的反正切值

说明:值域为(-π/2+π/2)

举例:

     // atan.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=0.32;
       printf("atan(%.2f)=%.4f",x,atan(x));

       getchar();
       return 0;
     }

相关函数:asin,acos,atan2,sin,cos,tan


atan2

原 型:extern float atan2(float y, float x);

用法:#include <math.h>

功能:求y/x(弧度表示)的反正切值

说明:值域为(-π/2+π/2)

举 例:

     // atan2.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x,y;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=0.064;
       y=0.2;
       printf("atan2(%.3f,%.2f)=%.4f",y,x,atan2(y,x));

       getchar();
       return 0;
     }

相关函 数:asin,acos,atan,sin,cos,tan



ceil

原型:extern float ceil(float x);

用法:#include <math.h>

功能:求不小于x的最 小整数

说明:返回x的上限,如74.12的上限为75-74.12的上限为-74。返回值为float类型。

举例:

     // ceil.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=74.12;
       printf("ceil(%.2f)=%.0f\n",x,ceil(x));
       x=-74.12;
       printf("ceil(%.2f)=%.0f\n",x,ceil(x));

       getchar();
       return 0;
     }

相关函数:floor



cos

原 型:extern float cos(float x);

用法:#include <math.h>

功 能:求x(弧度表示)的余弦值

说明:返回值在[-1.01.0]之间。

举例:

     // cos.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=PI/4.;
       printf("cos(%.4f)=%.4f\n",x,cos(x));

       getchar();
       return 0;
     }

相关函数:asin,acos,atan,atan2,sin,tan



cosh

原 型:extern float cosh(float x);

用法:#include <math.h>

功 能:求x的双曲余弦值

说明:cosh(x)=(e^x+e^(-x))/2

举例:

     // cosh.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=PI/4.;
       printf("cosh(%.4f)=%.4f\n",x,cosh(x));

       getchar();
       return 0;
     }

相关函数:sinh,tanh


exp

原 型:extern float exp(float x);

用法:#include <math.h>

功 能:求ex次幂

说明:e=2.718281828...

举例:

     // exp.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("e=%f\n",exp(1.0));

       getchar();
       return 0;
     }

相关函数:无



fabs

原 型:extern float fabs(float x);

用法:#include <math.h>

功 能:求浮点数x的绝对值

说明:计算|x|, x不为负时返回x,否则返回-x

举例:

     // fabs.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=-74.12;
       printf("|%f|=%f\n",x,fabs(x));
       x=0;
       printf("|%f|=%f\n",x,fabs(x));
       x=74.12;
       printf("|%f|=%f\n",x,fabs(x));

       getchar();
       return 0;
     }

相关函数:abs



floor

原 型:extern float floor(float x);

用法:#include <math.h>

功 能:求不大于x的最达整数

说明:返回x的下限,如74.12的下限为74-74.12的下限为-75。返回值为float类型。

举 例:

     // floor.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=74.12;
       printf("floor(%.2f)=%.0f\n",x,floor(x));
       x=-74.12;
       printf("floor(%.2f)=%.0f\n",x,floor(x));

       getchar();
       return 0;
     }

相关函数:ceil


fmod

原 型:extern float fmod(float x, float y);

用法:#include <math.h>

功 能:计算x/y的余数

说明:返回x-n*y,符号同yn=[x/y](向离开零的方向取整)

举例:

     // fmod.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x,y;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=74.12;
       y=6.4;
       printf("74.12/6.4: %f\n",fmod(x,y));      
       x=74.12;
       y=-6.4;
       printf("74.12/(-6.4): %f\n",fmod(x,y));      

       getchar();
       return 0;
     }

相关函 数:无



frexp

原型:extern float frexp(float x, int *exp);

用法:#include <math.h>

功能:把浮点数x分解成尾数和指数。

说 明:x=m*2^expm为规格化小数。返回尾数m,并将指数存入exp中。

举例:

     // frexp.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;
       int exp;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=frexp(64.0,&exp);
       printf("64=%.2f*2^%d",x,exp);

       getchar();
       return 0;
     }

相关函数:ldexp,modf



hypot

原 型:extern float hypot(float x, float y);

用法:#include <math.h>

功能:对于给定的直角三角形的两个直角边,求其斜边的长度。

说明:返回斜边值。

举 例:

     // hypot.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("3^2+4^2=%.0f^2\n",hypot(3.,4.));
       printf("3.2^2+4.3^2=%.2f^2",hypot(x,y));

       getchar();
       return 0;
     }

相关函数:frexp,ldexp



ldexp

原 型:extern float ldexp(float x, int exp);

用法:#include <math.h>

功能:装载浮点数。

说明:返回x*2^exp的值。

举例:

     // ldexp.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=ldexp(1.0,6); // 1.0*2^6
       printf("2^6=%.2f",x);

       getchar();
       return 0;
     }

相关函数:frexp,modf



log

原 型:extern float log(float x);

用法:#include <math.h>

功 能:计算x的自然对数。

说明:x的值应大于零。

举例:

     // log.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("ln(e)=%f\n", log(M_E)); // M_E is 2.71828..., defined in math.h

       getchar();
       return 0;
     }

相关函数:log10



log10

原型:extern float log10(float x);

用法:#include <math.h>

功能:计算x的常用 对数。

说明:x的值应大于零。

举例:

     // log10.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("lg(5)=%f\n", log10(5.0));

       getchar();
       return 0;
     }

相关函数:log



modf

原 型:extern float modf(float num, float *i);

用法:#include <math.h>

功能:将浮点数num分解成整数部分和小数部分。

说明:返回小数部分,将整数部分存入*i 所指内存中。

举例:

     // modf.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x, i;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=modf(-74.12,&i);
       printf("-74.12=%.0f+(%.2f)",i,x);

       getchar();
       return 0;
     }

相关函数:frexp,ldexp


pow10

原 型:extern float pow10(float x);

用法:#include <math.h>

功 能:计算10x次幂。

说明:相当于pow(10.0,x)

举例:

     // pow10.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("10^3.2=%f\n",pow10(3.2));
       printf("10^3.2=%f",pow(10,3.2));

       getchar();
       return 0;
     }

相关函数:pow



pow

原 型:extern float pow(float x, float y);

用法:#include <math.h>

功 能:计算xy次幂。

说明:x应大于零,返回幂指数的结果。

举例:

     // pow.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("4^5=%f",pow(4.,5.));

       getchar();
       return 0;
     }

相关函数:pow10



sin

原 型:extern float sin(float x);

用法:#include <math.h>

功 能:计算x(弧度表示)的正弦值。

说明:x的值域为[-1.01.0]

举例:

     // sin.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=M_PI/2;        // M_PI=PI=3.14159265..., defined in math.h
       printf("sin(PI/2)=%f",sin(x));

       getchar();
       return 0;
     }

相关函数:asin,acos,atan,atan2,cos,tan



sinh

原 型:extern float sinh(float x);

用法:#include <math.h>

功 能:计算x(弧度表示)的双曲正弦值。

说明:sinh(x)=(e^x-e^(-x))/2

举例:


     // sinh.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=PI/4.;
       printf("sinh(%.4f)=%.4f\n",x,sinh(x));

       getchar();
       return 0;
     }

相关函数:cosh,tanh


sqrt

原 型:extern float sqrt(float x);

用法:#include <math.h>

功 能:计算x的平方根。

说明:x应大于等于零。

举例:


     // sqrt.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       printf("sqrt(2000)=%f",sqrt(2000.0));

       getchar();
       return 0;
     }

相关函数:无



tan

原 型:extern float tan(float x);

用法:#include <math.h>

功 能:计算x(弧度表示)的正切值。

说明:返回x的正切值。

举例:

     // tan.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;
       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=M_PI/4;        // M_PI=PI=3.14159265..., defined in math.h
       printf("tan(PI/4)=%f",tan(x));

       getchar();
       return 0;
     }

相关函 数:asin,acos,atan,atan2,sin,cos



tanh

原型:extern float tanh(float x);

用法:#include <math.h>

功能:求x的双曲正切 值

说明:tanh(x)=(e^x-e^(-x))/(e^2+e^(-x))

举例:

     // tanh.c

     #include <syslib.h>
     #include <math.h>

     main()
     {
       float x;

       clrscr();        // clear screen
       textmode(0x00); // 6 lines per LCD screen

       x=PI/4.;
       printf("tanh(%.4f)=%.4f\n",x,tanh(x));

       getchar();
       return 0;
     }




很好的资料