我试图打印出具有一定程度的线的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
答案 0 :(得分:0)
您可以使用FOR /d /r "topDir" %%G in (*foo*) DO (
echo %%G | find /v "foobar" 1>nul 2>nul && (
echo %%G
)
)
转换为弧度。所有python的默认触发函数都以弧度为单位。所以你的代码变成了:
math.radians(degree)
这会产生正确的结果:6.123233995736766e-16 10.0,有一些奇怪的浮点行为,你可以用适当的舍入来修复。
答案 1 :(得分:0)
大多数数学库中的所有角度都是弧度。 import math
degree = 90
radius = 10
x = radius * math.cos(math.radians(degree))
y = radius * math.sin(math.radians(degree))
print(x,y)
的输入应该是弧度,但是你要传递度数。
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
答案 2 :(得分:0)
在Python中,您可以使用math.radians
将度数转换为弧度。请注意,不仅仅是Python默认为弧度,它通常是数学中的标准,用弧度来讨论角度。
虽然通常可以使用转换公式
radians = pi * degrees / 180