Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- root = Tk()
- canvas = Canvas(root, width="1000", height="1000")
- canvas.pack()
- def create_scores_text():
- global speed_y, power
- speed_y = canvas.create_text(120, 12,
- text="Скорость по y: " + str(int(Vy0)),
- font="Sans 18")
- power = canvas.create_text(520, 12,
- text="Сила тяги двигателя: " + str(int(F)),
- font="Sans 18")
- def change_scores_text():
- canvas.itemconfigure(speed_y, text="Скорость по y: " + str(int(Vy0)))
- canvas.itemconfigure(power, text="Сила тяги двигателя: " + str(int(F)))
- def hight_percent():
- global y0, percent_hight
- percent_hight = 100 * int(900 - y0 - r_rocket) / 850
- # print(percent_hight)
- def change_acceleration():
- global a, F, percent_hight, Vx0
- if percent_hight < 1:
- F = 0
- a = 0
- elif percent_hight < 15:
- F = 80
- Vx0 = 1
- elif percent_hight < 30:
- F = 70
- Vx0 = 7.5
- elif percent_hight < 50:
- F = 40
- Vx0 = 15
- a = (m_rocket * g - F) / m_rocket
- print(percent_hight, F, a)
- def create_rocket():
- """ эта функция создает модель ракеты радиусом r """
- global rocket, r_rocket, x0, y0
- rocket = canvas.create_oval(x0 - r_rocket, y0 - r_rocket, x0 + r_rocket, y0 + r_rocket, fill="green")
- def create_moon():
- """ эта функция создает Луну,"""
- moon = canvas.create_rectangle(0, 900, 1000, 1000, fill="green")
- def move():
- global x0, y0, rocket, Vx0, Vy0, a, F
- change_acceleration()
- Vy = Vy0 + a * dt
- new_x = x0 + Vx0 * dt
- new_y = y0 + Vy * dt + (a * dt ** 2) / 2
- if new_y >= 900 - r_rocket:
- new_y = y0
- new_x = x0
- Vy = 0
- Vx0 = 0
- canvas.move(rocket, new_x - x0, new_y - y0)
- x0, y0 = new_x, new_y
- Vy0 = Vy
- hight_percent()
- def time_event():
- move()
- change_scores_text()
- canvas.after(speed_animation, time_event)
- r_rocket = 10 # Радиус ракеты
- m_rocket = 20 # Масса ракеты
- x0 = 50 # Координата центра по x
- y0 = 50 # Координата центра по y
- dt = 0.1 # Интервал времени
- Vx0 = 25 # Скорость по х
- Vy0 = 0 # Скорость по y
- g = 1.6 # ускорение свободного падения на луне
- F = 0 # сила тяги двигателя
- speed_animation = 25 # Скорость анимации
- percent_hight = 100
- create_rocket()
- create_moon()
- create_scores_text()
- time_event()
- root.mainloop()
Add Comment
Please, Sign In to add comment