回答編集履歴
1
Update
test
CHANGED
@@ -5,8 +5,6 @@
|
|
5
5
|
from matplotlib import pyplot as plt
|
6
6
|
|
7
7
|
from matplotlib.animation import ArtistAnimation
|
8
|
-
|
9
|
-
import math
|
10
8
|
|
11
9
|
|
12
10
|
|
@@ -26,7 +24,7 @@
|
|
26
24
|
|
27
25
|
for _ in range(100):
|
28
26
|
|
29
|
-
prev = b[:]
|
27
|
+
prev = b[:]; newv = [1, 1]
|
30
28
|
|
31
29
|
b[0] += v[0]; b[1] += v[1]
|
32
30
|
|
@@ -34,29 +32,27 @@
|
|
34
32
|
|
35
33
|
b = [W, (v[1]/v[0])*(W-prev[0])+prev[1]]
|
36
34
|
|
37
|
-
v[0]
|
35
|
+
newv[0] = -1
|
38
36
|
|
39
37
|
if b[0] < 0:
|
40
38
|
|
41
39
|
b = [0, (v[1]/v[0])*-prev[0]+prev[1]]
|
42
40
|
|
43
|
-
v[0]
|
41
|
+
newv[0] = -1
|
44
42
|
|
45
43
|
if b[1] > H:
|
46
44
|
|
47
|
-
|
45
|
+
b = [(v[0]/v[1])*(H-prev[1])+prev[0], H]
|
48
46
|
|
49
|
-
b = [(v[0]/v[1])*(H-prev[1])+prev[0], H]
|
50
|
-
|
51
|
-
v[1]
|
47
|
+
newv[1] = -1
|
52
48
|
|
53
49
|
if b[1] < 0:
|
54
50
|
|
55
|
-
|
51
|
+
b = [(v[0]/v[1])*-prev[1]+prev[0], 0]
|
56
52
|
|
57
|
-
|
53
|
+
newv[1] = -1
|
58
54
|
|
59
|
-
|
55
|
+
v = [v[0]*newv[0], v[1]*newv[1]]
|
60
56
|
|
61
57
|
im = ax.scatter([b[0]], [b[1]], c="b")
|
62
58
|
|