Math.atan2求角度解析

我们求角度的时候,

第一反应应该是Math.tan(x/y)就得到角度了

坐标系
但是这样求的是和y轴的夹角,如果以y轴正方向为0度,顺时针为正,则第三象限和第一象限的tan值一致,需要判断x,y和0的关系,从而判定该角度是多少


也看到过Math.atan2(y, x)这个函数,

其实这个函数是这样的:
它求的是和x轴正方向的夹角,x轴正方向为0,顺时针为负值,逆时针为正值,顺逆时针(判定为优弧所在范围), 取值范围(-PI, PI]

描述

/**
* 求角度,弧度制
* @param {Number} y y值
* @param {Number} x x值
* @returns 和x轴正方向所成夹角,x轴上方为正,下方为负
**/
Math.atan2(y, x)

注意:这个函数第一个参数为y, 第二个参数为x
Math.atan2(y, x)

证明:

  1. 先记住几个数:¼PI、¾PI、-¼PI、-¾PI
1/4 * Math.PI // 0.7853981633974483 第一象限
3/4 * Math.PI // 2.356194490192345 第四象限
-1/4 * Math.PI // -0.7853981633974483 第二象限
-3/4 * Math.PI // -2.356194490192345 第三象限
  1. 接下来我们求x、y为±1的时候的值
Math.atan2(1, 1) // 0.7853981633974483 四分之一PI 的值
Math.atan2(-1, 1) // -0.7853981633974483 负四分之一PI 的值
Math.atan2(-1, -1) // -2.356194490192345 负四分之三PI 的值
Math.atan2(1, -1) // 2.356194490192345 四分之PI 的值
Math.atan2(0, -1) // 3.141592653589793 x轴负方向 值为 PI
Math.atan2(Math.sqrt(3), 1) // 1.0471975511965976 y为根号三,x为1,这是与x轴正方向60°的角
Math.atan2(Math.sqrt(3), -1) // 2.0943951023931957 y为根号三,x为-1, 这是与x轴正方向120°的角

atan 和 atan2 的区别

  1. 我参考的是百度百科

完结撒花!!!


__EOF__

本文作者echo_lovely
本文链接https://www.cnblogs.com/echo-lovely/p/17198113.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   echo_lovely  阅读(484)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示