飞控中使用到数学函数
2016-06-20 15:21
288 查看
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:
1 三角函数
double sin (double);
double cos (double);
double tan (double);
2 反三角函数
double asin (double); 结果介于[-PI/2, PI/2]
double acos (double); 结果介于[0, PI]
double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]
3 双曲三角函数
double sinh (double);
double cosh (double);
double tanh (double);
4 指数与对数
double exp (double);
double pow (double, double);
double sqrt (double);
double log (double); 以e为底的对数
double log10 (double);c++中自然对数函数:log(N) 以10为底:log10(N)但没有以2为底的函数但是可以用换底公式解 决:log2(N)=log10(N)/log10(2)
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 绝对值
double fabs (double);
7 标准化浮点数
double frexp (double f, int p); 标准化浮点数, f = x 2^p, 已知f求x, p ( x介于[0.5, 1] )
double ldexp (double x, int p); 与frexp相反, 已知x, p求f
8 取整与取余
double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分
double fmod (double, double); 返回两参数相除的余数
source: 《C & C++ Code Capsules》
9 平方根
sqrt
atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);
那么这两个点形成的斜率的角度计算方法分别是:
float angle = atan( (y2-y1)/(x2-x1) );
或
float angle = atan2( y2-y1, x2-x1 );
atan 和 atan2 区别:
1:参数的填写方式不同;
2:atan2 的优点在于 如果 x2-x1等于0 依然可以计算,但是atan函数就会导致程序出错;
结论: atan 和 atan2函数,建议用 atan2函数;
1 三角函数
double sin (double);
double cos (double);
double tan (double);
2 反三角函数
double asin (double); 结果介于[-PI/2, PI/2]
double acos (double); 结果介于[0, PI]
double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]
3 双曲三角函数
double sinh (double);
double cosh (double);
double tanh (double);
4 指数与对数
double exp (double);
double pow (double, double);
double sqrt (double);
double log (double); 以e为底的对数
double log10 (double);c++中自然对数函数:log(N) 以10为底:log10(N)但没有以2为底的函数但是可以用换底公式解 决:log2(N)=log10(N)/log10(2)
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 绝对值
double fabs (double);
7 标准化浮点数
double frexp (double f, int p); 标准化浮点数, f = x 2^p, 已知f求x, p ( x介于[0.5, 1] )
double ldexp (double x, int p); 与frexp相反, 已知x, p求f
8 取整与取余
double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分
double fmod (double, double); 返回两参数相除的余数
source: 《C & C++ Code Capsules》
9 平方根
sqrt
atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);
那么这两个点形成的斜率的角度计算方法分别是:
float angle = atan( (y2-y1)/(x2-x1) );
或
float angle = atan2( y2-y1, x2-x1 );
atan 和 atan2 区别:
1:参数的填写方式不同;
2:atan2 的优点在于 如果 x2-x1等于0 依然可以计算,但是atan函数就会导致程序出错;
结论: atan 和 atan2函数,建议用 atan2函数;
相关文章推荐
- BOS项目练习(定区添加及查询,Hessian入门,基于hessian实现定区关联客户功能)
- 使用ASTView分析代码调用关系分析的具体应用
- 各种分类指标
- navicat连接数据库报错1045
- mysql mysqli pdo区别
- 部署vCenter Server的一些经验与问题
- yolo中检测后的图像生成-predictions.png
- 二维码扫描
- JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
- C++ 简易 Simple_ATM_drawmoney
- 四:深入Nginx之事件和连接 (之一)
- JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
- 【原创】NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示
- 刺客信条-【设计模式】-软件设计准则
- 生活号- 做本地号,本地的资源和背景是重中之重
- OkHttp简单用法
- 三. 简单绘图--Windows编程课程学习笔记
- iOS使用security.framework实现RSA加解密
- CSS隐藏元素的五种方法
- nosql mongodb group分组统计及索引优化