2016-09-20 45 views
0

我是Python的新手,目前與龜圖形有一段艱難的時間。這就是我試圖解決顯示拋射體(龜)隨着時間的流逝如何移動

在Turtellini的 交通系統推動烏龜的巨型彈弓(其中Python的龜居住的星球)。 A 特定烏龜的原始位置(x0,y0)爲(-180,-100)。然後他以 的速度向上拍攝,其初始垂直速度(vy)爲88秒/ 秒,水平速度(vx)爲20秒/秒,右側爲 。他旅行了16秒。重力加速度(g) 爲11單位每秒平​​方。給定秒(t)的 處的龜的位置計算如下:x = x0 + vx * t並且y = y0 + vy * t-g/2 * t2。這個計劃是爲了展示一隻烏龜在這段時間內的旅程。

輸出應該是這樣的:

Output Image

這是我應該做的;

  • 設置了常數(垂直速度,水平速度, 重力)和變量設立 烏龜給他適當的形狀,把他的尾部向上(x和y座標),移動他到 初始位置,將他的尾巴放下,形成一個重複 秒1至16的循環。在循環顯示 的每次迭代中,x和y變量的值(在shell窗口中),將海龜移動到那些座標,讓海龜戳他的形狀, 計算x和y變量的新值循環 終止後,將龜最後計算座標, 改變自己的顏色,並加蓋他的形狀,然後等待鼠標點擊

我迄今爲止代碼:

import turtle 

def main(): 
    wn = turtle.Screen() 
    turtellini = turtle.Turtle() 
    t = int(input("Blab blab blab: ")) 
    x0 = -180 
    y0 = -100 
    vx = 20 
    vy = 88 
    g = 11 
    x = (float(x0 + vx * t)) 
    y = (float(y0 + vy * t - g/2 * t**2)) 
    turtellini.color("black") 
    turtellini.shape("turtle") 
    turtellini.up() 
    turtellini.goto(-180,-100) 
    turtellini.down() 
    for i in range(1,16,1): 
     turtellini.stamp() 
     turtellini.forward(i) 
     turtellini.right(i) 
    print(x) 
    print(y) 
if __name__ == "__main__": 
    main() 

我知道我做得不好;但誰能幫我解決這個問題?

回答

0

你似乎有大部分零件。我看到的最大問題是你沒有把你的x,y計算放在循環中。循環迭代變量i在您的運動方程中確實是t。每次計算新的X,Y,你只需將海龜移動到該位置時:

import turtle 
from math import pi, atan 

x0, y0 = -180, -100 # initial location 

vx, vy = 20.0, 88.0 # initial velocity in units per second 

travel_time = 16 # seconds 

g = 11.0 # acceleration due to gravity in units per second squared 

turtellini = turtle.Turtle(shape='turtle', visible=False) 

turtellini.penup() 
turtellini.radians() # to make turtle compatible with math.atan() 
turtellini.setheading(pi/2) # straight up 
turtellini.goto(x0, y0) 
turtellini.pendown() 
turtellini.showturtle() 
turtellini.stamp() 

for t in range(1, travel_time + 1): 

    x = x0 + vx * t 
    y = y0 + vy * t - g/2 * t**2 

    turtellini.goto(x, y) 

    print(x, y) 

    angle = atan((vy * t - g * t**2)/(vx * t)) # a guess! 
    turtellini.setheading(angle) 

    turtellini.stamp() 

turtle.exitonclick() 

不像黃金標準圖像,我以爲烏龜是空氣動力學像一顆子彈,並通過飛行第一次前往頭。我不知道,也不能快速找到,對於一個彈丸的飛行角度的公式,所以我從現有的公式猜測:

enter image description here

相關問題