Python度默认为弧度

问题描述 投票:0回答:3

我正在尝试打印出具有一定程度的线的x,y值,该线与具有指定半径的圆相交。

让我们举例说,这条直线指向90度。

import math

degree = 90
radius = 10
x = radius * math.cos(degree)
y = radius * math.sin(degree)

print(x,y)

这打印出-4.480736161291701 8.939966636005579,但根据我的计算器应该在deg上打印0 10。

我已经尝试在x =和y =的度变量之前添加math.radians和math.degrees,但是在我尝试的任何时候它都没有正确出现。我发现有一个直线与圆相交的点的链接是here,sin / cos值被翻转为解决方案中的x和y值。

简单地说,我如何使90度为度数而不是弧度才能得到正确的x,y?

编辑:

通过添加math.radians:

x = radius * math.cos(math.radians(degree))
y = radius * math.sin(math.radians(degree))

它返回6.123233995736766e-16 10.0

~~~

通过添加math.degrees:

x = radius * math.cos(math.degrees(degree))
y = radius * math.sin(math.degrees(degree))

它返回-2.995153947555356 -9.540914674728182

python trigonometry
3个回答
0
投票

您可以使用math.radians(degree)转换为弧度。所有python的默认触发函数都以弧度为单位。所以你的代码变成:

import math

degree = 90
radius = 10
x = radius * math.cos(math.radians(degree))
y = radius * math.sin(math.radians(degree))

print(x,y)

这会产生正确的结果:6.123233995736766e-16 10.0,有一些奇怪的浮点行为,你可以通过适当的舍入来修复。


0
投票

在Python中,您可以使用math.radians将度数转换为弧度。请注意,不仅仅是Python默认为弧度,它通常是数学中的标准,用弧度来讨论角度。

虽然,一般来说,您始终可以使用转换公式

radians = pi * degrees / 180

0
投票

大多数数学库中的所有角度都是弧度。 math.cos的输入应该是弧度,但你是以度数传递的。

import math

degree = 90
radius = 10
x = radius * math.cos(math.radians(degree))
y = radius * math.sin(math.radians(degree))
print x,y
>0, 10

math.radians只不过是在做(pi * degree / 180 )

© www.soinside.com 2019 - 2024. All rights reserved.