zoukankan      html  css  js  c++  java
  • atan与atan2的区别

    相比较ATan,ATan2究竟有什么不同?本篇介绍一下ATan2的用法及使用条件。

    对于tan(θ) = y / x:

    θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]。

    θ = ATan2(y, x)求出的θ取值范围是[-PI, PI]。

    • 当 (x, y) 在第一象限, 0 < θ < PI/2.

    • 当 (x, y) 在第二象限 PI/2 < θPI.

    • 当 (x, y) 在第三象限, -PI < θ < -PI/2.

    • 当 (x, y) 在第四象限, -PI/2 < θ < 0.

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

    • 当 y 是 0,x 为非负值, θ = 0.

    • 当 y 是 0, x 是 负值, θ = PI.

    • 当 y 是 正值, x 是 0, θ = PI/2.

    • 当 y 是 负值, x 是 0, θ = -PI/2.

    由此可知,一般情况下用ATan即可,当对所求出角度的取值范围有特殊要求时,应使用ATan2。

     atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);

    那么这两个点形成的斜率的角度计算方法分别是:

    float angle = atan( (y2-y1)/(x2-x1) );

    float angle = atan2( y2-y1, x2-x1 );

     atan 和 atan2 区别:

    1:参数的填写方式不同;

    2:atan2 的优点在于 如果 x2-x1等于0 依然可以计算,但是atan函数就会导致程序出错;

    结论: atan 和 atan2函数,建议用 atan2函数;

  • 相关阅读:
    博客阅读计数优化
    博客阅读简单计数
    博客后台富文本编辑
    博客分类统计
    Django关联关系查询
    上下篇博客,按月归档
    浅谈闭包以及常见面试题
    浅谈前端缓存(转至大佬)
    post请求头的常见类型
    浅谈RegExp 对象的方法
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/4693060.html
Copyright © 2011-2022 走看看