Advertisement
Guest User

stolkn

a guest
Jan 19th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 KB | None | 0 0
  1. import turtle
  2. import random
  3. r = 10
  4. x0 = []
  5. y0 = []
  6. ax = []
  7. ay = []
  8. ax1 = []
  9. ay1 = []
  10. ax2 = []
  11. ay2 = []
  12. vx0 = []
  13. vy0 = []
  14. m = []
  15. q = []
  16. x1 = []
  17. y1 = []
  18. vy1 = []
  19. vx1 = []
  20. dt=0.01
  21. for i in range(5):
  22.     x0.append(random.randint(-190, 190))
  23.     y0.append(random.randint(-190, 190))
  24.     ax.append(0)
  25.     ay.append(0)
  26.     ax1.append(0)
  27.     ay1.append(0)
  28.     ax2.append(0)
  29.     ay2.append(0)
  30.     vx0.append(random.randint(150,800))
  31.     vy0.append(random.randint(150,800))
  32.     m.append(2)
  33.     q.append(random.randint(1,5))
  34.     x1.append(0)
  35.     y1.append(0)
  36.     vy1.append(0)
  37.     vx1.append(0)
  38. balls = []
  39. for i in range (5):  
  40.     window = turtle.Screen()
  41.     border = turtle.Turtle()
  42.     border.speed(0)
  43.     border.up()
  44.     border.hideturtle()
  45.     border.pensize(5)
  46.     border.color('black')
  47.     border.goto(200,200)
  48.     border.down()
  49.     border.goto(200,-200)
  50.     border.goto(-200,-200)
  51.     border.goto(-200,200)
  52.     border.goto(200,200)
  53.     ball = turtle.Turtle()
  54.     ball.hideturtle()
  55.     ball.shape('circle')
  56.     ball.up()
  57.     ball.color('gold')
  58.     balls.append(ball)
  59.  
  60. for i in range (0,5):
  61.     balls[0].color('blue')
  62.     balls[1].color('black')
  63.     balls[3].color('cyan')
  64.     balls[4].color('grey')
  65. while True:
  66.     for i in range (0,5):
  67.         x,y = ball.position()
  68.         balls[i].goto(x0[i],y0[i])
  69.         balls[i].showturtle()
  70.     for i in range (0,5):
  71.         x1[i] = x0[i]+vx0[i]*dt
  72.         y1[i] = y0[i]+vy0[i]*dt
  73.     for i in range (0,5):
  74.         vy0[i] = vy0[i]+ay[i]*dt
  75.         vx0[i] = vx0[i]+ax[i]*dt
  76.     for i in range (0,5):
  77.         for j in range (0,5):
  78.             if i!=j:
  79.                 if ((x1[i]-x1[j])**2+(y1[i]-y1[j])**2)**0.5<2*r:
  80.                     vx1[i]=((m[i]-m[j])*vx0[i]+(2*m[j]*vx1[j]))/(m[i]+m[j])
  81.                     vx0[i]=vx1[i]
  82.                     x1[i]=x0[i]+vx0[i]*dt
  83.                     x0[i]=x1[i]
  84.                     vy1[i]=((m[i]-m[j])*vy0[i]+(2*m[j]*vy1[j]))/(m[i]+m[j])
  85.                     vy0[i]=vy1[i]
  86.                     y1[i]=y0[i]+vy0[i]*dt
  87.                     y0[i]=y1[i]
  88.     for i in range (0,5):
  89.         if x1[i]>200-r:      
  90.             vx0[i]=-1*vx0[i]
  91.             x1[i]=2*200-x1[i]-2*r
  92.         if x1[i]<-200+r:    
  93.             vx0[i]=-1*vx0[i]
  94.             x1[i]=2*(-200)-x1[i]+2*r
  95.         if y1[i]>200-r:      
  96.             vy0[i]=-1*vy0[i]
  97.             y1[i]=2*200-y1[i]-2*r  
  98.         if y1[i]<-200+r:      
  99.             vy0[i]=-1*vy0[i]
  100.             y1[i]=2*(-200)-y1[i]+2*r
  101.         x0[i] = x1[i]
  102.         y0[i] = y1[i]  
  103.  
  104. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement