我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.as中有两个函数可以计算反正切,我们来看一下.
1、as中Math.atan()
Math.atan()接受一个参数:用法如下:
angel=Math.atan(slope)
angel为一个角度的弧度值,slope为直线的斜率,是一个数字,这个数字可以是负的无穷大到正无穷大之间的任何一个值.
不过,利用他进行计算比较复杂.因为他的周期性,一个数字的反正切值不止一个.例如atan(-1)的值可能是45度,也可能是225度.这样就是他的周期性,对于正切函数来说,他的周期是180度,所以两个相差180度的角具有相同的正切和斜率:
tanθ=tan(θ+180)
然而,Math.atan()只能返回一个角度值,因此确定他的角度非常的复杂,而且,90度和270度的正切是无穷大,因为除数为零,我们也是比较难以处理的~!因此我们更多的会采用第二个函数.
2、Math.atan2()
Math.atan2()接受两个参数x和y,方法如下:
angel=Math.atan2(y,x)
x 指定点的 x 坐标的数字。
y 指定点的 y 坐标的数字。
计算出来的结果angel是一个弧度值,也可以表示相对直角三角形对角的角,其中 x 是临边边长,而 y 是对边边长。
下面我们来测试一下这两个函数:
x=Math.atan(1)//计算正切值为1的数字对应的弧度值
trace(x) //输出一个弧度值0.785398163397448
x=180*x/Math.PI//转换为角度值
trace(x) //输出45
x=Math.atan2(7,7)
trace(x)//输出0.785398163397448
x=180*x/Math.PI//转换为角度值
trace(x)//输出45
x=Math.atan2(7,-7)
trace(x)2.35619449019234
x=180*x/Math.PI//转换为角度值
trace(x)135
x=Math.atan2(-7,7)
trace(x)//输出-0.785398163397448
x=180*x/Math.PI//转换为角度值
trace(x)//输出-45
x=Math.atan2(-7,-7)
trace(x)//输出-2.35619449019234
x=180*x/Math.PI//转换为角度值
trace(x)//输出-135
//从这些测试可以看出,通过坐标系的自动调整,我们可以很自由的计算出处于不同象限的位置相对应的角度.
3、计算两点间连线的倾斜角.
这种方法非常的有用.
Math.atan2()函数返回点(x,y)和原点(0,0)之间直线的倾斜角.那么如何计算任意两点间直线的倾斜角呢?只需要将两点x,y坐标分别相减得到一个新的点(x2-x1,y2-y1).然后利用他求出角度就可以了.使用下面的一个转换可以实现计算出两点间连线的夹角.
Math.atan2(y2-y1,x2-x1)
不过这样我们得到的是一个弧度值,在一般情况下我们需要把它转换为一个角度.
下面我们用一段代码来测试一下这样的转换.
//测试,计算点(3,3)和(5,5)构成的连线的夹角
x=Math.atan2(5-3,5-3)
trace(x)//输出0.785398163397448
x=x*180/Math.PI//转换为角度
trace(x)//输出45

//这个函数的用处非常的大

Fortran库函数atan与atan2相关推荐

  1. C语言math.h库函数中atan与atan2的区别

    今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点.想到使用斜率来计算角度,于是联想到数学公式中的 ...

  2. c语言math.atan,C语言math.h库函数中atan与atan2的区别

    今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点.想到使用斜率来计算角度,于是联想到数学公式中的 ...

  3. c语言atan的作用,C语言中的atan和atan2

    在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x)  他们返回的值是弧度 要转化为角度再自己处理下. 前者 ...

  4. atan与atan2的区别

    相比较ATan,ATan2究竟有什么不同?本篇介绍一下ATan2的用法及使用条件. 对于tan(θ) = y / x: θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]. θ ...

  5. MATLAB中atan与atan2角度讲解

    atan2求的是一个点所对应的角的大小 ,且输出角度范围是[-π, π] atan求的是一个数值对应的角,且输出角度范围是[-π/2, π/2] 例如: atan(1)=0.7854 atan(1,1 ...

  6. python中 math模块下 atan 和 atan2的区别

    atan 和 atan2 都是反正切函数,返回的都是弧度 对于两点形成的直线,两点分别是 point(x1,y1) 和 point(x2,y2),其斜率对应角度的计算方法可以是: angle = at ...

  7. MATLAB atan 和 atan2

    atan 和 atan2 都是求反正切函数,但参数数量和计算方法都有不同. atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限    当点(b, ...

  8. c语言中atan2(a b)怎么运算,C语言中的atan和atan2(转)

    在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x)  他们返回的值是弧度 要转化为角度再自己处理下. 前者 ...

  9. atan和atan2函数

    atan和atan2函数 一.atan函数 二.atan2函数 三.代码 一.atan函数 atan范围是[-pi/2,pi/2],如果角度不在这个范围还得再判断 二.atan2函数 atan2函数范 ...

最新文章

  1. 自然语言处理工具类数地工厂
  2. 记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配(二)
  3. iOS 四种保存数据的方式!
  4. linux如何将json文件导入到mongo数据库
  5. 判断两个list集合里的对象某个属性值是否一样_第七章 集合框架
  6. html5游戏指尖跟随,图片跟随手指滑动
  7. java代理通俗简单解析
  8. LeetCode 1207. 独一无二的出现次数
  9. jquery ui放大缩小_jQuery拖拽放大缩小插件idrag
  10. IDEA Debug 无法进入断点的解决方法
  11. 【Linux常用指令整理8】别名、输入/输出重定向、管道、命令连接符、命令替换符...
  12. 【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
  13. turtle fillcolor_Python编程:使用海龟turtle画图制作可爱的哆啦A梦,你也可以的。
  14. 软件项目管理案例教程(第三版)课后习题及答案
  15. 生意参谋指数之指数推理原值
  16. 数据分析师必备的python包
  17. WebService的四种客户端调用方式(基本)
  18. 计算机与昆虫关系的论文,趣味昆虫学论文 昆虫与人类的关系
  19. matlab的符号变量sym,syms
  20. 一篇关于串口的经典文章

热门文章

  1. 华为云跨服务器传输文件,与云服务器传输文件
  2. 查看ubuntu服务器防火墙配置文件,Ubuntu Server服务器防火墙ufw开启及配置方法 | 坐倚北风...
  3. 【猛料】腾讯前总监受贿侵占数百万获刑9年
  4. f2fs系列文章fsck(五)
  5. VLookup函数怎么用?详细解析
  6. SpringApplicationBuilder
  7. JMS入门(一)--JMS基础
  8. 【AWK】awk 基础用法和应用
  9. matlab土方计算,土方量计算的MATLAB工具箱研制
  10. atcoder abc284 E