jukaukor

pomppiva_pallo.py

Nov 16th, 2018
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. # Pomppiva 1cm-säteinen pallo, putoaa 10 m korkeudelta
  2. # joka pompulla menettää nopeudestaan 5 %
  3. # ilmanvastusta ei ole, painovoima g = 9.81 m/s²
  4. # Laskenta-aikaväli Dt = 1/100 sekuntia
  5. # Juhani Kaukoranta 17.11.2018
  6. # tehty Samuli Siltasen tiedevideon innoittamana
  7.  
  8. # pomppimisessa käyetty wanhaa kunnon Turtle-grafiikkaa
  9. # lämpimät muistot Logo-kielestä
  10. from turtle import Turtle
  11. from turtle import Screen
  12. screen = Screen()
  13. import math
  14.  
  15. # alkuarvot
  16. y0 = 10.0
  17. v0 = 0.0
  18. t0 = 0.0
  19. r = 0.01
  20. g = 9.81
  21. Dt = 1/100
  22. T = 1000
  23. y = y0
  24. v = v0
  25. t = t0
  26. pomput = 0
  27. # lattian, salin ja pallon alustaminen
  28. ball = Turtle()
  29. ball.speed(0)
  30. ball.screen.bgcolor("black")
  31. ball.hideturtle()
  32. ball.up()
  33. lattia = Turtle()
  34. lattia.speed(0)
  35. lattia.color("blue")
  36. lattia.hideturtle()
  37. lattia.up()
  38. lattia.pensize(5)
  39. lattia.setpos(-200,-210)
  40. lattia.down()
  41. lattia.forward(400)
  42. screen.delay(1)
  43. otsikko = Turtle()
  44. otsikko.hideturtle()
  45. otsikko.up()
  46. otsikko.setpos(-0,250)
  47. otsikko.color("magenta")
  48. otsikko.down()
  49. otsikko.write("Pomppiva pallo",align="center",font=("Arial",40,"normal"))
  50.  
  51. # pomppiminen alkaa
  52. for j in range (0,T) :
  53. v = v - g*Dt
  54. y = y + v*Dt-g*Dt*Dt/2
  55. ball.setpos(0,-200+40*y)
  56. ball.dot(10,"red")
  57. ball.dot(10,"red")
  58. ball.dot(10,"black")
  59. # onko pallo lattiassa
  60. if y <= r :
  61. v = -0.95*v
  62. pomput = pomput+1
  63. t = t + Dt
  64.  
  65. otsikko.up()
  66. otsikko.setpos(0,200)
  67. otsikko.write("Pomppuja oli "+str(pomput)+" kpl",align="center",font=("Arial",20,"normal"))
Advertisement
Add Comment
Please, Sign In to add comment