我正在尝试编写一些代码,以找到卫星在轨道上的坐标,但是我目前正在尝试仅对忽略重力等的圆执行此操作,并且已经获得了半径。我已经尝试过此代码,但是循环无法正常工作
import math
r = 5
angle = 0
while angle <= 360:
angle = math.radians(angle)
x_coord = math.sin(angle)*r
y_coord = math.cos(angle)*r
print ("Position [",x_coord,y_coord,"]")
angle +=1
答案 0 :(得分:2)
在执行行angle = math.radians(angle)
时,这将替换在上一行中检查的同一angle
变量的值-因此,由于angle
永远不会高于360,循环将永远不会结束。
我的建议是在将变量转换为弧度时更改其名称,以免覆盖其值,例如:angle_radians = math.radians(angle)
。因此,您还必须更改sin
和cos
才能使用新变量。
答案 1 :(得分:1)
首先,如@Random所指出的,您需要为angle = math.radians(angle)
使用不同的变量名。例如,angle_radians
第二,当您使用print
时,需要将x_coord
和y_coord
转换为字符串:str(x_coord)
和str(y_coord)
尝试一下:
import math
r = 5
angle = 0
while angle <= 360:
angle_radians = math.radians(angle)
x_coord = math.sin(angle_radians)*r
y_coord = math.cos(angle_radians)*r
print ("Position [",str(x_coord),str(y_coord),"]")
angle +=1