`

Math.atan与Math.atan2

    博客分类:
  • Flex
阅读更多
转:Math.atan与Math.atan2
4
推荐我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.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 

来源于:http://www.roboticfan.com/blog/user_2005/104/archives/2007/20071123104924.shtml
分享到:
评论

相关推荐

    JavaScript中的Math.atan2()方法使用详解

    Math.atan2( x, y ) ; 下面是参数的详细信息: x 和 y : 一个数字. 返回值: 返回一个数弧度的反正切值 Math.atan2( ±0, -0 ) returns ±PI. Math.atan2( ±0, +0 ) returns ±0. Math.atan2( ±0, -x ) returns ...

    浅谈JavaScript中的Math.atan()方法的使用

    在实际应用中,Math.atan()方法经常被用来处理与角度和三角函数相关的问题。例如,当你知道直角三角形的邻边和对边的长度时,可以使用正切函数求出对应的锐角角度;在图形绘制和动画制作中,计算旋转角度时也会用到...

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

    例如,`math.atan2(1, 1)`将返回45度角(π/4 弧度)的对应弧度值,与`math.atan(1)`的结果相同,因为在第一象限内,无论x和y哪个大,斜率都是1,对应45度角。 另外,`atan`和`atan2`返回的都是弧度值,如果需要将...

    c标准库

    另外,<math.h>定义了一些与IEEE浮点数标准相关的常量,例如HUGE_VAL用于表示正无穷大,以及一些用于特殊数值处理的宏定义,如定义无穷大值和非数字NaN值。在编程中,可能会遇到数值溢出或者非数字值的计算结果,...

    python源码math.py

    python源码,math.py,math.nan acos acosh asin asinh atan atan2 ceil

    axure的函数

    axure函数速查表,包括TotalDragY DragTime Window.width Window.height Window.scrollX ...Math.atan2(y,x) Math.ceil(x) Math.cos(x) Math.exp(x) Math.floor(x) Math.log(x) Math.max(x,y) Math.min(x,y)

    Python入门之三角函数atan2()函数详解

    描述 atan2() 返回给定的 X 及 Y 坐标值的反正切值。 语法 以下是 atan2() 方法的语法: import math math.atan2(y, x) 注意:atan2()是不能直接访问的,需要导入...print atan2(-0.50,-0.50) : , math.atan2(-0.50,

    JS脚本Math方法(强烈推荐).pdf

    10. `Math.atan2(y, x)`:返回点(y, x)的坐标在单位圆上的角度,范围在-pi到pi之间。 11. `Math.log(x)`:返回x的自然对数。 12. `Math.exp(x)`:返回e的x次方。 13. `Math.pow(x, y)`:返回x的y次方。 14. `Math....

    C_中math.h函数总结

    printf("The absolute value of %.2lfi %.2lfj is %.2lf",z.x,z.y,val); return 0; } ``` ceil函数 函数原型:double ceil(double num); 函数功能:得到不小于num的最小整数 函数返回:双精度表示的最小整数 参数...

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

    print("atan2(-0.50,-0.50) : ", math.atan2(-0.50,-0.50)) print("atan2(0.50,0.50) : ", math.atan2(0.50,0.50)) print("atan2(5,5) : ", math.atan2(5,5)) print("atan2(-10,10) : ", math.atan2(-10,10)) print...

    jsMath函数1

    jsMath 函数 1 的部分内容包括两个重要的数学函数:Math.sqrt() 和 Math.atan2()。 Math.sqrt(num) Math.sqrt() 函数返回指定数字的平方根。该函数的作用是计算一个数字的平方根,例如,Math.sqrt(16) 将返回 4,...

    肯定能用得上的Math对象

    在ActionScript中,三角函数(如Math.sin、Math.cos、Math.tan、Math.asin、Math.acos、Math.atan以及Math.atan2)对于创建动态图形和动画至关重要。它们分别代表正弦、余弦、正切、反正弦、反余弦和反正切,以及从x...

    JavaScript Math 对象的参考手册

    5. **`Math.atan2(y, x)`**:返回从x轴到点`(x, y)`的角度,范围在-π/2到π/2(弧度)之间。 6. **`Math.ceil(x)`**:返回大于或等于`x`的最小整数。 7. **`Math.cos(x)`**:返回`x`的余弦值。 8. **`Math.exp(x)`*...

    java中math类的使用

    `Math.tan()`计算指定角度的正切值,`Math.atan()`计算一个数值的反正切值,而`Math.atan2(y, x)`则基于两点坐标计算角度的反正切值,这在处理二维坐标系统中的方向问题时特别有用。 #### Math.toDegrees(), Math....

    python中三角函数的表示

    print("math.atan2(", y, ",", x, "): ", math.atan2(y, x)) print("math.pypot(", x, ",", y, "): ", math.pypot(x, y)) ``` 在后端开发中,Python的三角函数常常用于处理与空间位置、旋转、角度计算等相关的问题...

    python中math模块函数.pdf

    6. math.atan2(y, x) 函数:返回 y/x 的反正切值,但和 atan 不同,atan2 可以接受两个参数,能够处理 x 和 y 同时为0的情况,并且可以确定结果的角度所在的象限。 7. math.atanh(x) 函数:返回参数 x 的反双曲正切...

    as入门数学函数--Math类

    `Math.atan2(y, x)`函数用于计算从原点(0,0)到点(x, y)的角度,它返回的是一个介于-π和π之间的值,能准确地确定象限位置,非常适合用于游戏开发中的方向计算。 #### 4. Math.ceil()与Math.floor() 这两个函数分别...

    python中math模块函数借鉴.pdf

    * math.atan2(y, x):返回 y/x 的反正切 * math.atanh(x):返回 x 的反双曲正切 这些函数可以用于计算反三角函数的值,例如计算反余弦、反双曲余弦、反正弦、反双曲正弦等。 2. 取整函数 Python 的 math 模块提供...

    Python math模块总结.pdf

    3. `math.atan(x)`返回x的反正切,范围在-pi/2到pi/2之间,而`math.atan2(y, x)`则根据xy坐标返回反正切值,范围在-pi到pi之间。 4. `math.atanh(x)`: 返回x的反双曲正切值,x的范围在-1到1之间。 5. `math.ceil(x)`...

Global site tag (gtag.js) - Google Analytics