如何使用Python将弧度转换为度?


72

math模块中,我只能找到math.cos(x)带有cos / sin / tan / acos / asin / atan的。这将返回以弧度为单位的答案。如何获得度数的答案?

这是我的代码:

import math

x = math.cos(1)
y = x * 180 / math.pi
print(y)
30.9570417874

我的度数计算器为我提供:

cos(1)
0.9998476...

14
您的东西向后,cos以角度作为输入,而不是输出。
Mark Ransom 2012年

@Mark Ransom有什么意义?
tkbx 2012年

4
@ lucase.62,马克是正确的。1在您的示例中,cos函数在一个角度上作为输入操作。在您的计算器上,该角度在减小,在Python中,该角度必须以弧度给出。x在您的示例中,返回值是一个无量纲的数字。在您的计算器上,您已经计算出1度的cos。在您的Python示例中,您已经计算了1个弧度的cos,相当于57.296度。
Stewbob 2012年

4
cos以角度作为输入并产生比率作为输出。像您在示例中所做的那样,尝试将输出转换为度数根本没有任何意义。您需要将输入1从度转换为弧度。如果您使用的acos是相反的方法,则输入为比率,输出为弧度。
Mark Ransom 2012年

Answers:


162

Python在math包中包括两个函数;radians将度数转换为弧度,degrees并将弧度转换为度。

要匹配计算器的输出,您需要:

>>> math.cos(math.radians(1))
0.9998476951563913

请注意,所有的三角函数都在角度和三角形两侧的比率之间转换。cos,sin和tan以弧度表示的角度作为输入并返回比率;acos,asin和atan以比率作为输入并以弧度返回角度。您只转换角度,而不转换比例。


1
这是一个了不起的回应。您的示例很清楚,但是您的“奖励”解释确实很有帮助。我对这件事很好奇。
Startec '16

1
谢谢。作为唯一一个没有任何数学技能的综合症患者,这非常有用!
亚当·威尔斯

1
如果有人想知道,numpy也有那些功能,可以一次转换整个数组。它还以更明确的名称rad2deg和包含它们deg2rad
P-Gn

40

Python将弧度转换为度或将度转换为弧度:

什么是弧度,它可以解决什么问题?:

弧度和度是两个独立的度量单位,可以帮助人们表达和传达方向的精确变化。Wikipedia的图表非常直观地说明了如何相对于度数定义一个Radian:

https://zh.wikipedia.org/wiki/弧度

从弧度到度的转换

使用库通过弧度计算度的Python示例:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      

使用库从度数计算弧度的Python示例:

>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586

来源:https : //docs.python.org/3/library/math.html#angular-conversion

数学符号:

度数和弧度的数学表示法

您可以在不使用库的情况下进行度/弧度转换:

如果使用自己的度数/弧度转换器,则必须编写自己的代码来处理极端情况。

这里的错误很容易造成,并且会像1999年的火星轨道飞行器的开发人员一样遭受伤害,因为在这里,由于不直观的边缘情况,他们沉没了1.25亿美元,使它坠入火星。

让我们撞毁该轨道飞行器,并将我们自己的弧度滚动到一定程度:

无效弧度作为输入返回垃圾输出。

>>> 0 * 180.0 / math.pi                         #0 radians is 0 degrees
0.0
>>> (math.pi/2) * 180.0 / math.pi               #pi/2 radians is 90 degrees
90.0
>>> (math.pi) * 180.0 / math.pi                 #pi radians is 180 degrees
180.0
>>> (math.pi+(math.pi/2)) * 180.0 / math.pi     #pi+(pi/2) radians is 270 degrees
270.0
>>> (2 * math.pi) * 180.0 / math.pi             #2*pi radians is 360 degrees
360.0

度到弧度:

>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586

用度和弧度表示多次旋转

单旋转有效弧度值在0到2 * pi之间。单旋转度值在0到360之间。但是,如果要表达多次旋转,则有效弧度和度值在0到无穷大之间。

>>> import math
>>> math.radians(360)                 #one complete rotation
6.283185307179586
>>> math.radians(360+360)             #two rotations
12.566370614359172
>>> math.degrees(12.566370614359172)  #math.degrees and math.radians preserve the
720.0                                 #number of rotations

折叠多次旋转:

通过针对一个旋转的值进行修改,可以将多个度/弧度旋转折叠为一个旋转。对于度数,您乘以360,对于弧度,则乘以2 * pi。

>>> import math
>>> math.radians(720+90)        #2 whole rotations plus 90 is 14.14 radians
14.137166941154069
>>> math.radians((720+90)%360)  #14.1 radians brings you to 
1.5707963267948966              #the end point as 1.57 radians.

>>> math.degrees((2*math.pi)+(math.pi/2))            #one rotation plus a quarter 
450.0                                                #rotation is 450 degrees.
>>> math.degrees(((2*math.pi)+(math.pi/2))%(2*math.pi)) #one rotation plus a quarter
90.0                                                    #rotation brings you to 90.

专家提示

汗学院拥有巩固三角学和角数学的直觉的出色内容:https : //www.khanacademy.org/math/algebra2/trig-functions/intro-to-radians-alg2/v/introduction-to-radians


19

您可以使用来简单地将弧度结果转换为度

数学学位和四舍五入到所需的小数位

例如

>>> round(math.degrees(math.asin(0.5)),2)
30.0
>>> 

1
为了匹配问题中使用的示例math.cos(math.radians(1))
Mark Ransom 2012年

为什么在将弧度传递给数学度之前将弧度传递给asin?您有什么导致ValueError: math domain error有效的弧度值。
埃里克·莱斯钦斯基

2

我还喜欢定义自己的函数,这些函数以度而不是弧度来接受和返回参数。我敢肯定有些最纯正的大写字母不喜欢我的名字,但是我只是在自定义函数中使用首字母大写。定义和测试代码如下。

#Definitions for trig functions using degrees.
def Cos(a):
    return cos(radians(a))
def Sin(a):
    return sin(radians(a))
def Tan(a):
    return tan(radians(a))
def ArcTan(a):
    return degrees(arctan(a))
def ArcSin(a):
    return degrees(arcsin(a))
def ArcCos(a):
    return degrees(arccos(a))

#Testing Code
print(Cos(90))
print(Sin(90))
print(Tan(45))
print(ArcTan(1))
print(ArcSin(1))
print(ArcCos(0))

请注意,我已经使用以下命令将数学(或numpy)导入名称空间:

from math import *

还要注意,我的函数位于定义它们的名称空间中。例如,

math.Cos(45)

不存在。


2

弧度也可以通过使用numpy转换为度

print(np.rad2deg(1))
57.29577951308232

如果需要舍入(我在下面的小数点后用6位数字表示),则

print(np.round(np.rad2deg(1), 6)

57.29578

1

-fix-,因为要从弧度更改为度,所以实际上是rad = deg * math.pi / 180,而不是deg * 180 / math.pi

import math
x=1                # in deg
x = x*math.pi/180  # convert to rad
y = math.cos(x)    # calculate in rad

print y

在1行中可以像这样

y=math.cos(1*math.pi/180)

永远不要除以整数(在这样的设置中),在极少数情况下,此功能很有用,即使这样,也存在一些将其写得更明确的方法。
fuesika 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.