Colisões
1 Web VPython 3.2
2
3
4 ## COLISÕES ####
5
6 ### Corpos###
7 corpo1 = sphere(pos = vec(-9,5,0), color = [Link], velocidade = vec(4,0,0), mass = 1)
8 corpo2 = sphere(pos = vec(0,5,0), color = [Link], velocidade = vec(0,0,0), mass = 1)
9
10 corpo3 = sphere(pos = vec(-9,0,0), color = [Link], velocidade = vec(4,0,0), mass = 1)
11 corpo4 = sphere(pos = vec(0,0,0), color = [Link], velocidade = vec(0,0,0), mass = 1)
12
13 corpo5 = sphere(pos = vec(-9,-5,0), color = [Link], velocidade = vec(4,0,0), mass = 1)
14 corpo6 = sphere(pos = vec(0,-5,0), color = [Link], velocidade = vec(0,0,0), mass = 1)
15
16
17 c1 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
18 legenda = text(text = f"m1 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
19 attach_arrow(corpo1, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
20
21 c2 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
22 legenda2 = text(text = f"m2 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
23 attach_arrow(corpo2, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
24
25 c3 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
26 legenda3 = text(text = f"m1 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
27 attach_arrow(corpo3, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
28
29 c4 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
30 legenda4 = text(text = f"m2 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
31 attach_arrow(corpo4, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
32
33 c5 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
34 legenda5 = text(text = f"m1 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
35 attach_arrow(corpo5, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
36
37 c6 = cylinder(pos=[Link], radius=0.1, axis=vec(0,1.5,0), color=[Link])
38 legenda6 = text(text = f"m2 = {[Link].1F}kg", pos=[Link]+[Link], align='center', height=0.5,
color=[Link], billboard=True, emissive=True)
39 attach_arrow(corpo6, "velocidade", color=[Link], scale=1, shaftwidth=0.3)
40 ## Tempo ####
41 t = 0
42 dt = 0.01
43
44 ####Movimento####
45 while ([Link].x < 10):
46 rate(300)
47 if ([Link].x + [Link]) < ([Link].x - [Link]):
48 [Link] += [Link] * dt
49 [Link] = [Link]
50 [Link] = [Link]+[Link]
51 [Link] += [Link] * dt
52 [Link] = [Link]
53 [Link] = [Link]+[Link]
54 else:
55 [Link] = [Link]
56 [Link] = vec(0,0,0)
57 [Link] += [Link] * dt
58 [Link] = [Link]
59 [Link] = [Link]+[Link]
60 t += dt
61
62
63 t = 0
64
65 while ([Link].x < 10):
66 rate(300)
67 if ([Link].x + [Link]) < ([Link].x - [Link]):
68 [Link] += ([Link]) * dt
69 [Link] = [Link]
70 [Link] = [Link]+[Link]
71 [Link] += ([Link]) * dt
72 [Link] = [Link]
73 [Link] = [Link] + [Link]
74 else:
75 [Link] = [Link] /2
76 [Link] = -[Link] /2
77 [Link] += ([Link]) * dt
78 [Link] = [Link]
79 [Link] = [Link]+[Link]
80 [Link] += ([Link]) * dt
81 [Link] = [Link]
82 [Link] = [Link] + [Link]
83 t +=dt
84
85 t = 0
86
87
88 while([Link].x < 10):
89 rate(300)
90 if ([Link].x + [Link]) < ([Link].x - [Link]):
91 [Link] += [Link] * dt
92 [Link] = [Link]
93 [Link] = [Link]+[Link]
94 [Link] += [Link] * dt
95 [Link] = [Link]
96 [Link] = [Link] + [Link]
97 else:
98 [Link] = [Link]
99 [Link] += [Link] * dt
100 [Link] = [Link]
101 [Link] = [Link]+[Link]
102 [Link] += [Link] * dt
103 [Link] = [Link]
104 [Link] = [Link] + [Link]
105 t += dt
106