atan2(a,b)和atan的区别
atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限:
当点(b, a) 落入第一象限时,atan2(a,b)的范围是 0 ~ pi/2;
当点(b, a) 落入第二象限时,atan2(a,b)的范围是 pi/2 ~ pi;
当点(b, a) 落入第三象限时,atan2(a,b)的范围是 -pi~-pi/2;
当点(b, a) 落入第四象限时,atan2(a,b)的范围是 -pi/2~0
而 atan(a/b) 仅仅根据正切值为a/b求出对应的角度 (可以看作仅仅是2象限反正切):
当 a/b > 0 时,atan(a/b)取值范围是 0 ~ pi/2;
当 a/b < 0 时,atan(a/b)取值范围是 -pi/2~0
故 atan2(a,b) = atan(a/b) 仅仅发生在 点 (b, a) 落入第一象限 (b>0, a>0)或 第四象限(b>0, a<0)。当点 (b, a) 落入第二、三象限时,很显然atan2(a,b) 不等于 atan(a/b) ,并且atan2(a,b)也不可能等于 2*atan(a/b) 。这是因为,假如点 (b, a) 落入第二象限,则 a/b<0, 故atan(a/b)取值范围始终是 -pi/2~0,2*atan(a/b) 的取值范围是-pi~0,然而,atan2(a,b)的范围是 pi/2 ~ pi,故不可能有atan2(a,b) = 2*atan(a/b) 。假如点(b, a) 落入第三象限,则则 a/b>0 , 故 atan(a/b) 取值范围是 0 ~ pi/2,2*atan(a/b) 的取值范围是 0 ~ pi,而此时atan2(a,b)的范围是 -pi~-pi/2,很显然,atan2(a,b) = 2*atan(a/b)
举个最简单的例子,a = 1, b = -1,则 atan(a/b) = atan(-1) = -pi/4, 而 atan2(a,b) = 3*pi/4
atan2(a,b)和atan的区别相关推荐
- atan2与atan的区别
目录 总结 atan2: Four-quadrant inverse tangent. atan 距离对比 总结 简而言之,atan2与atan的区别体现在两个方面: (1) atan2接收两个输入参 ...
- 透彻说明反正切atan2函数比反正切atan函数的区别
flash里,反正切atan2函数比反正切atan函数(即角的对边比邻边)更为有用,它可以让我们做出对物体正确的旋转.请记住Flash里的y轴 坐标与数学的是颠倒的.(上面演示所示),Flash是以弧 ...
- 正切atan2(y,x)与atan(x)
1.atan(x)表示求的是x的反正切,其返回值为[-pi/2,+pi/2]之间的一个数. 2.atan2(y,x)求的是y/x的反正切,其返回值为[-pi,+pi]之间的一个数. 在三角函数中,两个 ...
- MATLAB函数——atan(x)和atan2(x)的区别
atan 和 atan2 都是求反正切函数,但参数数量和计算方法都有不同. atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限 当点(b, ...
- 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 ...
- atan与atan2
1.atan2的含义 C 语言里 double atan2(double y,double x) 返回的是原点至点(x,y)的方位角,即与 x 轴的夹角.返回值的单位为弧度,取值范围为(-π, π]. ...
- atan2 vs atan
atan2函数 atan2(y,x)所表达的意思是以坐标原点为起点,指向(x,y)坐标处的射线在坐标平面上与x轴正向之间的夹角的角度.在我们轨迹跟踪过程中,我们车辆的横摆角定义为车辆纵轴与X轴正向之间 ...
- MATLAB中atan与atan2角度讲解
atan2求的是一个点所对应的角的大小 ,且输出角度范围是[-π, π] atan求的是一个数值对应的角,且输出角度范围是[-π/2, π/2] 例如: atan(1)=0.7854 atan(1,1 ...
- MATLAB atan 和 atan2
atan 和 atan2 都是求反正切函数,但参数数量和计算方法都有不同. atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限 当点(b, ...
最新文章
- 给娃写个游戏,庆祝嫦娥五号登月
- 哈萨比斯导师:人工智能媲美人类或需两百年,神经学是条出路
- 服务端统一时间戳 boost::date_time UTC
- kettle kafka mysql_kettle使用kafka组件消费数据,保存到资源库无法打开问题
- html如何链接sql sever,SQL Server链接服务器
- java与java ee_计划Java EE 7批处理作业
- Redis:05---键的基本命令(下) 生存周期
- 【文章】鱼那么信任水, 水却煮了鱼!
- ubuntu用户目录安装pip(无root权限)
- 送书 |《Python大数据与机器学习实战》
- Java 使用dom4j进行XML解析
- 海昇智:拼多多推广创意图如何才能做好?
- 6.Striped64源码解析
- 【100%通过率】华为OD机试真题 Python 实现【完美走位】【2022.11 Q4新题】
- home credit default risk(捷信违约风险)机器学习模型复现(论文_毕业设计_作业)
- PDF在线预览插件汇总与方案总结
- cent7虚拟机镜像_centos7.3系统下载
- 基础知识 fock()函数
- Java设计模式之外观模式
- matlab二维色温图,怎样在二维摄影画面中营造纵深立体感?试试这9个用光构图技巧吧...
热门文章
- python爬取阿里巴巴网站实现
- IDEA必备插件系列 - Key Promoter X(快捷键使用提示)
- Bugzilla的bug状态
- oracle connectionstring 属性尚未初始化.,ConnectionString 属性尚未初始化
- Python挑战游戏( PythonChallenge)闯关之路Level- 1
- 房产抵押贷款需要的资质有哪些
- 执行git merge,合并两个分支的代码,其中某个分支的文件或代码被删除或被覆盖
- 一元n次多项式的处理
- Linux开放80端口
- $().each()与$.each()的区别