Guest User

Untitled

a guest
Mar 16th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. from tkinter import *
  2.  
  3. root = Tk()
  4. canvas = Canvas(root, width="1000", height="1000")
  5.  
  6. canvas.pack()
  7.  
  8.  
  9. def create_scores_text():
  10. global speed_y, power
  11. speed_y = canvas.create_text(120, 12,
  12. text="Скорость по y: " + str(int(Vy0)),
  13. font="Sans 18")
  14. power = canvas.create_text(520, 12,
  15. text="Сила тяги двигателя: " + str(int(F)),
  16. font="Sans 18")
  17.  
  18.  
  19. def change_scores_text():
  20. canvas.itemconfigure(speed_y, text="Скорость по y: " + str(int(Vy0)))
  21. canvas.itemconfigure(power, text="Сила тяги двигателя: " + str(int(F)))
  22.  
  23.  
  24. def hight_percent():
  25. global y0, percent_hight
  26. percent_hight = 100 * int(900 - y0 - r_rocket) / 850
  27.  
  28. # print(percent_hight)
  29.  
  30.  
  31. def change_acceleration():
  32. global a, F, percent_hight, Vx0
  33. if percent_hight < 1:
  34. F = 0
  35. a = 0
  36. elif percent_hight < 15:
  37. F = 80
  38. Vx0 = 1
  39. elif percent_hight < 30:
  40. F = 70
  41. Vx0 = 7.5
  42. elif percent_hight < 50:
  43. F = 40
  44. Vx0 = 15
  45. a = (m_rocket * g - F) / m_rocket
  46. print(percent_hight, F, a)
  47.  
  48.  
  49. def create_rocket():
  50. """ эта функция создает модель ракеты радиусом r """
  51. global rocket, r_rocket, x0, y0
  52. rocket = canvas.create_oval(x0 - r_rocket, y0 - r_rocket, x0 + r_rocket, y0 + r_rocket, fill="green")
  53.  
  54.  
  55. def create_moon():
  56. """ эта функция создает Луну,"""
  57. moon = canvas.create_rectangle(0, 900, 1000, 1000, fill="green")
  58.  
  59.  
  60. def move():
  61. global x0, y0, rocket, Vx0, Vy0, a, F
  62. change_acceleration()
  63. Vy = Vy0 + a * dt
  64. new_x = x0 + Vx0 * dt
  65. new_y = y0 + Vy * dt + (a * dt ** 2) / 2
  66. if new_y >= 900 - r_rocket:
  67. new_y = y0
  68. new_x = x0
  69. Vy = 0
  70. Vx0 = 0
  71. canvas.move(rocket, new_x - x0, new_y - y0)
  72. x0, y0 = new_x, new_y
  73. Vy0 = Vy
  74. hight_percent()
  75.  
  76.  
  77. def time_event():
  78. move()
  79. change_scores_text()
  80.  
  81. canvas.after(speed_animation, time_event)
  82.  
  83.  
  84. r_rocket = 10 # Радиус ракеты
  85. m_rocket = 20 # Масса ракеты
  86. x0 = 50 # Координата центра по x
  87. y0 = 50 # Координата центра по y
  88. dt = 0.1 # Интервал времени
  89. Vx0 = 25 # Скорость по х
  90. Vy0 = 0 # Скорость по y
  91. g = 1.6 # ускорение свободного падения на луне
  92. F = 0 # сила тяги двигателя
  93.  
  94. speed_animation = 25 # Скорость анимации
  95.  
  96. percent_hight = 100
  97.  
  98. create_rocket()
  99. create_moon()
  100. create_scores_text()
  101. time_event()
  102.  
  103. root.mainloop()
Add Comment
Please, Sign In to add comment