atan()和atan2()区别

atan()和atan2()

特性

atan(slope)

atan2(y, x)
输入参数1个:斜率(一个数字,即 y/x2个:点的坐标值(y 和 x
输出范围-π/2 到 π/2 (-90° 到 90°) 到 π (-180° 到 180°)
象限判断不能,有歧义可以,自动精确判断
安全性当 x=0 时,计算 y/x 会导致除以零错误能安全处理 x=0 的情况(如点在Y轴上)
主要用途已知斜率求基础角度坐标转换、计算方向(首选)

假设有两个点:

         A: (x=1, y=1)

         B: (x=-1, y=-1)

计算它们的斜率:

        点 A 的斜率 = 1 / 1 = 1

        点 B 的斜率 = (-1) / (-1) = 1

使用 atan() 的情况:
atan(1) 的计算结果大约是 0.785 弧度(45度)
对于点 A(在第一象限),这个结果是正确的。
但对于点 B(在第三象限),实际角度应该是 225度(或 -135度),而 atan() 却只返回了 45度。因为它只关心斜率,无法知道分子和分母的正负,这就是象限模糊性

使用 atan2() 的情况:
atan2(1, 1) 接收两个独立的坐标,它能“看到” x 和 y 都是正的,因此判断点在第一象限,返回 45度
atan2(-1, -1) 能“看到” x 和 y 都是负的,因此判断点在第三象限,返回 -135度(等价于 225度)。

结论:atan2() 通过分析两个参数的符号,消除了歧义,总能返回唯一正确的角度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值