首页 > 解决方案 > 在Python中将角度值从弧度转换为度数时出错

问题描述

我正在尝试用 Python 编写弹丸运动的程序,在输入水平速度和垂直速度的值时,如果我直接在程序中输入确定的常数值,我会得到正确的结果。

但是当我使用代码让用户输入角度的值时(显然,将 numpy 导入为 np),我得到的答案非常小(对于 $45^{\circ}$,值是 $-当我在程序中手动输入速度分量的值时,正确显示的是 0.0001...$ 而不是 $40.8$。

这是我的程序摘录以供参考,

thetaVal = input("Please enter theta value in degrees: ")
theta_val = float(thetaVal)
t = theta_val *180/3.14

v_x0= v_0*np.cos(t)
v_y0= v_0*np.sin(t)

我不知道我哪里出了问题,我的转换方式是错误的还是代码在语句的优先级上有问题,我真的不知道。

任何帮助将不胜感激谢谢!

标签: pythonspyder

解决方案


Numpy 的 cos 和 sin 函数以弧度表示角度。要将度数转换为弧度,您可以编写

t = theta_val * 3.14 / 180

或者更好的是,

t = np.radians(theta_val)

或等效地

t = np.deg2rad(theta_val)

推荐阅读