私は地球の速度が原点と水平に対する角度によって決定される太陽の周りを移動する地球をシミュレートしようとしています。私はこれを、三角形のためにtanh(反対/隣接)規則を使用する関数を作成することによって行った。O_correction(x,y)
。問題は、円軌道の代わりに螺旋状に飛び出して、なぜそれがわからないのかということです。軌道をシミュレートする
scene = canvas()
scene.background = color.white
O = 0
ball = sphere(pos=vector(10,0,0), radius=0.1, color=color.blue)
x = ball.pos.x
y = ball.pos.y
def O_correction(x,y):
O = math.atan((((y)**2)**0.5)/(((x)**2)**0.5))
answer = O
if x >= 0 and y >= 0:
answer = O
if x < 0 and y >= 0:
answer = pi - O
if x <= 0 and y < 0:
answer = O + pi
if x > 0 and y < 0:
answer =pi*2 - O
return answer
t =0
while t < 100:
x = ball.pos.x
y = ball.pos.y
print = (float(O_correction(x,y))
print = ((x**2) + (y**2))**0.5)
ball.pos.x -= sin(O_correction(x,y))
ball.pos.y += cos(O_correction(x,y))
print(" ")
t += 1
は非常に私のpythonを知らないが、私は物理学を知って 乾杯
これはあなたの質問には答えませんが、私は 'O_correction'の代わりに[' atan2'](https://docs.python.org/2/library/math.html#math.atan2) 'atan'の代わりに。 – jadhachem