我正在尝试打印出具有一定程度的线的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
您可以使用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,有一些奇怪的浮点行为,你可以通过适当的舍入来修复。
在Python中,您可以使用math.radians
将度数转换为弧度。请注意,不仅仅是Python默认为弧度,它通常是数学中的标准,用弧度来讨论角度。
虽然,一般来说,您始终可以使用转换公式
radians = pi * degrees / 180
大多数数学库中的所有角度都是弧度。 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 )