atan2()

(1)定义:

double atan2(double y,double x);
atan2() 函数的功能是求 y/x 的反正切值。atan2() 是 atan() 的增强版,能够确定角度所在的象限。

反正切函数 atan2() 和正切函数 tan() 的功能恰好相反:tan() 是已知一个角的弧度值,求该角的正切值;而 atan2() 是已知一个角的正切值(也就是 y/x),求该角的弧度值。

  • 其中 参数y:表示位于 Y 轴上的值;参数x:表示位于 X 轴上的值
  • 注意,x 和 y 同时为 0 时将导致域错误(domain error),因为此时的角度是不存在的,或者说是没有意义的。

(2)返回值:

返回 y/x 的反正切值,以弧度表示,取值范围为(-π,π]。如上图所示,tan(θ) = y/x,θ = atan2(y, x)。

当 (x, y) 在象限中时:

当 (x, y) 在第一象限,0 < θ < π/2
当 (x, y) 在第二象限,π/2 < θ ≤ π
当 (x, y) 在第三象限,-π < θ < -π/2
当 (x, y) 在第四象限,-π/2 < θ < 0

当 (x, y) 在象限的边界(也就是坐标轴)上时:

当 y 是 0,且 x 为非负值,θ = 0
当 y 是 0,且 x 是负值,θ = π
当 y 是正值,且 x 是 0,θ = π/2
当 y 是负值,且 x 是 0,θ = -π/2

由此可知,一般情况下用 atan() 即可,当对所求出角度的象限有特殊要求时,应使用 atan2()。

(3)实例:

/* atan2 example */
#include <stdio.h>      /* printf */
#include <math.h>       /* atan2 */
#define PI 3.14159265
int main ()
{double x, y, result;x = -10.0;y = 10.0;result = atan2 (y,x) * 180 / PI;printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );return 0;
}

输出结果:

The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees

【c++】atan2()和atan()函数相关推荐

  1. atan2和atan函数的区别

    atan2函数 atan2: Four-quadrant inverse tangent. 四象限反正切函数. Also known as the "quadrant-sensitive'' ...

  2. atan()函数与atan2()函数

    atan函数与atan2函数 一.atan()函数 1. 描述 2. 声明 3. 参数 4. 返回值 5. 头文件 二.atan2()函数 1. 描述 2. 声明 3. 参数 4. 返回值 5. 头文 ...

  3. 透彻说明反正切atan2函数比反正切atan函数的区别

    flash里,反正切atan2函数比反正切atan函数(即角的对边比邻边)更为有用,它可以让我们做出对物体正确的旋转.请记住Flash里的y轴 坐标与数学的是颠倒的.(上面演示所示),Flash是以弧 ...

  4. atan函数与atan2函数的一点区别

    atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2); 那么这两个点形成的斜率的角度计算方法分别是: float angle = atan ...

  5. C++中的atan2与atan

    C++中的atan2与atan 1. atan(x) 2. atan2(y,x) 3. atan(y/x)与atan2(y,x)的区别 反正切函数 atan(double x)与 atan2(doub ...

  6. atan2 vs atan

    atan2函数 atan2(y,x)所表达的意思是以坐标原点为起点,指向(x,y)坐标处的射线在坐标平面上与x轴正向之间的夹角的角度.在我们轨迹跟踪过程中,我们车辆的横摆角定义为车辆纵轴与X轴正向之间 ...

  7. matlab2c使用c++实现matlab函数系列教程-atan函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  8. atan2与atan的区别

    目录 总结 atan2: Four-quadrant inverse tangent. atan 距离对比 总结 简而言之,atan2与atan的区别体现在两个方面: (1) atan2接收两个输入参 ...

  9. 数据的标准化(离差标准化、log函数转换、atan函数转换、z标准化)

    源:https://blog.csdn.net/bbbeoy/article/details/70185798 引入 评价是现代社会各领域的一项经常性的工作,是科学做出管理决策的重要依据.随着人们研究 ...

最新文章

  1. 字母s开头的c语言的工具,C语言库函数(S类字母) - 3
  2. c语言中逗号自加,计算机二级自加、自减运算符和逗号运算符
  3. 为什么在大型 Angular 应用里我们需要使用 ngrx
  4. 【JOURNAL】好久了啊
  5. CListBox的函数
  6. 陶哲轩实分析命题6.4.12
  7. Linux中vectormath无法通过pip安装的解决办法
  8. python try else多余的设计_在python中利用try..except来代替if..else的用法
  9. 你不能访问此文件夹,因为你组织的安全策略阻止了未经身份验证的来宾访问
  10. 【风格迁移】Neural Style Transfer 神经风格迁移
  11. Android Studio创建安卓虚拟机并测试app
  12. java下载文件excel格式错乱,excel表格数据错乱如何修复-excel表格里的文件突然格式全部乱了,怎么恢复?...
  13. 人脸识别 数据集 与竞赛
  14. matlab求任意输入响应曲线,3.6 用Matlab进行动态响应分析
  15. 程序员的年终总结,各种版本各种残
  16. [量化-034]金融哲学-道德经解读-005-“道”是什么
  17. dialog使用(dialog使用方法)
  18. 使用Visio画各种可视化的流程图之PERT图和日历图
  19. 在C语言中,int型数据的取值范围?
  20. 狗哥和度娘的差距,就是一次点击

热门文章

  1. 字符编码 UTF-8 学习笔记
  2. JavaScript 中检查数组是否包含值的 5 种方法
  3. vue2.0 阻止冒泡, native
  4. 世界杯观看感受以及回忆...(大伙可在评论区讨论)
  5. 【优先队列】HDU1434幸福列车
  6. python 栈实现_Python 栈(后进先出)
  7. hao123被百度收购的原由
  8. IDEA SQL 红色字体报错
  9. 吃鸡服务器维护6月23日,4月23日吃鸡更新 | 手游网游页游攻略大全
  10. spring5下载安装(等于向IDE中导入模块)