`

透彻说明反正切atan2函数比反正切atan函数的区别

阅读更多

 

 

 

flash里,反正切atan2函数比反正切atan函数(即角的对边比邻边)更为有用,它可以让我们做出对物体正确的旋转.请记住Flash里的y轴 坐标与数学的是颠倒的.(上面演示所示),Flash是以弧度来计算的!坐标上的刻度值位置不太准,没校对大家就大概移到相应的点的位置上就可以验证下面 的列表值
atan(val:Number) atan2(y:Number,x:Number)
弧度角度换算公式:
弧度转为角度
degree = radians * 180 / PI
角度转为弧度
radians = degree * PI / 180

---------------------------------------------------------------------------------------------------------

atan2(Math.atan2 方法)

public static atan2(y:Number, x:Number) : Number

以弧度为单位计算并返回点 y /x 的角度,该角度从圆的 x 轴(0 点在其上,0 表示圆心)沿逆时针方向测量。返回值介于正 pi 和负 pi 之间。

可用性: ActionScript 1.0;Flash Player 5

x :Number - 指定点的 x 坐标的数字。

 

---------------------------------------------------------------------------------------------------------

 

我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.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

 

---------------------------------------------------------------------------------------------------------

 

 

trace(Math.atan2(10, 0)); // output: 1.5707963267949
注意:很多人研究很久都搞不明白这个atan2(y,x)是什么意思,其实很简单:
Q=180*(atan2(y,x)/Math.PI);
Q为真实的角度,当y=x时,Q为45度,当x=0,y!=0时,Q为90度,符合几何上的角度了。
分享到:
评论

相关推荐

    atan 函数介绍

    在计算机图形学中,`atan2`函数(扩展版本的`atan`,能处理`x`和`y`均为0的情况)常用于计算物体的方向或旋转角度。 此外,MATLAB还提供了一些相关的函数来与`atan`配合使用。比如,`deg2rad`和`rad2deg`可以进行...

    基于33F的快速CORDIC法计算反正切值.zip_33f_dspic_dspic atan2cordic_dspic33f_反

    标签“33f dspic dspic_atan2cordic dspic33f 反正切”揭示了本项目的关键点:33F系列的dsPIC微控制器,CORDIC算法实现的反正切函数(atan2),以及与之相关的开发环境和工具。 在压缩包内的文件中,`main.c`很可能...

    atan2查表算法

    这个函数与常见的atan函数(只接受一个参数y/x)不同,atan2不仅考虑了y值,还考虑了x值,因此可以正确处理所有象限的情况。 查表法是一种优化计算的方法,通过预先计算出一系列可能的结果并存储在一个查找表(LUT...

    反正切反正弦查表法.rar

    本主题聚焦于“反正切反正弦查表法”,它涉及到如何利用预先计算好的表格来快速有效地计算反正切(atan2)和反正弦(asin)函数的值。 首先,我们来看反正切函数(atan2)。在数学中,反正切函数是求解直角三角形中...

    python教程三角函数-Python入门之三角函数atan2()函数详解.pdf

    `atan2()`函数是Python中一个特殊且非常有用的三角函数,它提供了比简单的反正切函数`atan()`更全面的功能。在本教程中,我们将深入探讨`atan2()`函数的用法和特点。 `atan2()`函数返回的是基于X和Y坐标值的反正切...

    PMSM_SMO_atan.zip_pmsm滑膜_smo算法_反正切_滑_滑膜控制

    matlab的滑膜框图 反正切的滑膜算法

    C语言中的atan和atan2

    在C语言中,atan和atan2是用于计算反正切值的数学函数,它们在math.h头文件中被定义,也可以在C++中的cmath库中找到。这些函数通常用于计算一个角度,该角度与x轴的正方向以及经过原点的直线或两个点形成的线段相...

    浮点反正切函数的FPGA实现

    设计了一种基于CORDIC算法计算浮点反正切函数的的硬件结构,并在Altera公司的FPGA芯片上进行了验证,最后在Nios II处理器系统中以用户自定义指令的形式实现,通过C语言程序验证了浮点反正切模块的正确性。

    maxwell常用函数.txt

    atan2 反正切函数 2 atan2(y,x) asinh 反双曲余弦函数 asinh(x) atanh 反双曲正切函数 atanh(x) sinh 双曲正弦函数 sinh(x) cosh 双曲余弦函数 cosh(x) tanh 双曲正切函数 tanh(x) even 偶数函数(整数部分为

    C/C++中的atan和atan2函数实例用法

    总结来说,`atan`函数主要用于简单的一对一的正切值到角度的转换,而`atan2`函数则更全面,能够处理所有象限的点并返回准确的角度值。在实际编程中,尤其是在处理几何问题、物理问题或者任何需要计算角度的场景,`...

    atan_test.zip_atan_fast_atan

    atan函数,也称为反正切函数,是数学中的一个基本函数,与正切函数tan互为逆运算。在计算机科学和编程领域,atan函数通常用于计算角度,特别是在处理几何问题、三角计算以及各种科学和工程应用中。这个"atan_test....

    Atan2.rar_atan2_atan2 vb_vb.net matlab_vb.net MATLAB

    描述:matlab的Atan2函数与vb.net的Atan2函数计算结果并不一致。该程序用vb.net实现了matlab的Atan2函数。

    用FPGA利用xilinx自带的IP核实现反正切运算

    在数学上,反正切函数通常表示为atan(y/x),它返回一个角度,其正切等于y/x。在FPGA应用中,这可能涉及到角度检测、坐标变换或者无线通信中的信号解调。 Xilinx的IP核库包含了多种数学运算单元,包括用于实现反正切...

    atan2查表算法、linux内核kfifo脱离平台实现、crc校验算法、数值序列化等通用库

    1、atan2_tab.h atan2的查表法实现 2、convertor.h 支持整数、浮点与字节数组的互相转换,支持大小端设定 3、crc.h 包含crc16-ccitt和crc32的算法实现 4、fifo.h 参考linux kernel的kfifo的实现,无锁读写,效率高 5...

    用于Arduino的ATAN2的快速CORDIC算法 仅供学习参考用代码.zip

    本主题探讨的是一个适用于Arduino的快速CORDIC(坐标旋转数字计算机)算法,该算法实现了ATAN2函数的功能。ATAN2函数是数学中的一个函数,用于计算二维平面上点(x,y)到原点的角,返回值范围是-π到π。MATLAB中的...

    atan2(0..360):函数计算 y/x 的反正切并将结果放在 [0..360] 的范围内-matlab开发

    在MATLAB编程环境中,`atan2`函数是一个非常重要的数学函数,它用于计算二维坐标系中点(x, y)的角度,以弧度为单位。在给出的标题中,"atan2(0..360)"表示这个函数的结果被限制在0到360度之间,这是一个特殊的处理...

    单片机C语言查表法实现arctan arcsin 反正切 反正弦计算(不使用库函数)

    (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限,输出角度值 (3)asin曲线使用了一半的曲线,解决了asin邻近90度时...

    sqlserver中常用函数

    - **ATAN2()** 计算两个数值比值的反正切值。 ```sql SELECT ASIN(0.5), ACOS(0.5), ATAN(1), ATAN2(1, 1); ``` ##### DEGREES(), RADIANS() - **DEGREES()** 将弧度转换为角度。 - **RADIANS()** 将角度转换为...

    对python中 math模块下 atan 和 atan2的区别详解

    在Python的`math`模块中,`atan`和`atan2`都是用于计算反正切的函数,但它们之间存在一些重要的区别。这篇文章将详细介绍这两个函数的特性以及它们在实际使用中的差异。 首先,`atan`函数接收一个参数,通常是一个...

Global site tag (gtag.js) - Google Analytics