1、atan(x)表示求的是x的反正切,其返回值为[-pi/2,+pi/2]之间的一个数。

2、atan2(y,x)求的是y/x的反正切,其返回值为[-pi,+pi]之间的一个数。

在三角函数中,两个参数的函数atan2是正切函数的一个变种。对于任意不同时等于0的实参数x和y,atan2(y,x)所表达的意思是坐标原点为起点,指向(x,y)的射线在坐标平面上与x轴正方向之间的角的角度。当y>0时,射线与x轴正方向的所得的角的角度指的是x轴正方向绕逆时针方向到达射线旋转的角的角度;而当y<0时,射线与x轴正方向所得的角的角度指的是x轴正方向绕顺时针方向达到射线旋转的角的角度。

atan2函数最初在计算机编程语言中被引入,但是现在它的应用在科学和工程等其他多个领域十分常见。他的出现最早可以追溯到FORTRAN语言[1],并且可以在C语言的数学标准库的math.h文件中找到,此外在Java数学库、.NET的System.Math(可应用于C#、VB.NET等语言)、Python的数学模块以及其他地方都可以找到atan2的身影。许多脚本语言,比如Perl,也包含了C语言风格的atan2函数[2]

基于值域为  的正切函数,该函数定义如下:

说明:

  • 该函数的值域为,可以通过对负数结果加的方法,将函数的结果映射到范围内。

单位圆内的atan2取值

旁边的图片显示内容是:在一个单位圆内atan2函数在各点的取值。圆内标注代表各点的取值的幅度表示。

图片中,从最左端开始,角度的大小随着逆时针方向逐渐从-π增大到+π,并且角度大小在点位于最右端时,取值为0。

另外要注意的是,函数atan2(y,x)中参数的顺序是倒置的,atan2(y,x)计算的值相当于点(x,y)的角度值。

下方的图片显示的是单位圆上各点在atan2函数上的值,从原点射向(0,1)点的射线,开始绕逆时针方向可以与x轴正方向得到对应各点的复平面的复角,其中几个特殊点取值:

  • (0, 1)对于的复平面夹角为π/2,
  • (−1, 0)对于复平面的夹角为π,
  • (0, −1)对于复平面的夹角为3π/2,

在回到(1, 0)复平面夹角为 0 = (2nπ mod 2π)。

这些你可以直观的从图中看出。[3]

下面的插图分别显示的是atan2(y,x)和atan(y,x)在坐标平面的三维景象。

注意在atan2(y,x)函数中,从原点辐射出的射线上有常数值,而在atan(y/x)的函数中,经过原点的直线有常数值。

 

正切atan2(y,x)与atan(x)相关推荐

  1. matlab 中tan(x),atan(y/x),atan2(y,x) 总结

    (1) 在数学中,函数f(x)=tanx的定义域为:{x|kπ- π/2 <x<kπ+ π/2 ,k∈Z},值域为:[-∞,+∞] (2) atan(y/x) 根据正切值为y/x求出对应的 ...

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

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

  3. matlab中sort(),atan2(y,x),normrnd(),boxplot()函数,cell数组用法学习

    1.Y=sort(X,DIM,MODE) 参数DIM表示对哪一个维数进行排序,例如当X是一个二维矩阵,当DIM=1时表示对X的每一列进行排序,当DIM=2时表示对X的每一行进行排序. 参数MODE表示 ...

  4. atan2(a,b)和atan的区别

    atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限:    当点(b, a) 落入第一象限时,atan2(a,b)的范围是 0 ~ pi/2; ...

  5. history of program atan2(y,x)和pow(x,y)

    编年史 1951 – Regional Assembly Language  1952 – Autocode  1954 – IPL (LISP语言的祖先)  1955 – FLOW-MATIC (C ...

  6. C++:atan2(y, x)函数用法详解

    atan2(y, x),C++中一种double类型的反正切函数,返回值为弧度制下的角度,是点(0,0)和(x,y)的连线与X轴正半轴的夹角,其值域为 [-π,π] (当y=0时,可以取到±π),且在 ...

  7. 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 ...

  8. python标准库math用法精要

    1.ceil(x) 返回大于等于x的最小整数. >>> math.ceil(3.2) 4.0 >>> math.ceil(3) 3.0 >>> m ...

  9. 了解Python 一

    Python快速入门 Python是面向对象,高级语言,解释,动态和多用途编程语言.Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力. Python的语法和动态类型具 ...

最新文章

  1. 三大平衡树(Treap + Splay + SBT)总结+模板
  2. 韩国踩点跪:自愿向美交半导体机密,曾放话硬刚
  3. python进阶书籍的推荐 知乎-知乎看了很多推荐,最终选了这本Python入门
  4. C# DataTable去除重复,极其简便、简单
  5. vi - a linux command
  6. 算法移植优化(二)android gpuimage使用
  7. C语言野指针产生的情况
  8. java server2008_在windows server 2008下搭建简单的java学习环境
  9. python-snap7使用说明
  10. 常用来进行钢结构节点输出的软件是什么_钢结构、Tekla及建筑工业化厂商对Tekla软件的开发和应用...
  11. 如何使用cmd进入打印机选项_命令行方式添加打印机
  12. 3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力
  13. D. Binary Spiders(dpTrie)
  14. React制作页面在线截图功能
  15. 2022-2028年中国沉香产业竞争现状及投资前景分析报告
  16. PHP3d地球,Photoshop制作真实3D立体地球
  17. Web前端之仿携程首页布局
  18. 4年,如何从草根成长成为CTO-(第一篇)
  19. Python爬取2020年内地电影票房总排行榜
  20. 短线炒股技巧 短线绝招全攻略

热门文章

  1. SpringMVC整合DWR(Maven项目+jetty插件运行)
  2. VB.NET 教程_03_面向对象
  3. umap算法_UMAP:比t-SNE更好的降维算法
  4. linux启动ib驱动命令,linux安装IB驱动方法
  5. CTCMS-003自适应百度MIP模板
  6. NetSuite资产负债表编制技巧
  7. java时间单位_System.currentTimeMillis()计算方式与时间的单位转换
  8. vant输入表单右侧加单位
  9. 树莓派交叉编译 内核编译 - HQ
  10. 计算机算法常用术语中英对照(分为两部分 其中一部分表格形式 )