Code: Alles auswählen
##### vorher alles gleich
def init():
joint.set_data([], [])
return [joint]
def animate(i):
print i
joint.set_data(array_out[i][0], array_out[i][1])
if array_out[i][2] == 1:
joint.set_color('g')
elif array_out[i][2] == 2:
joint.set_color('r')
else:
joint.set_color('w')
return [joint]
array_out = []
#####
for i in range(t+2206, len(arm1[5, :])):
array1 = np.amax(abs(arm1[:, i] - arm1[:, i - t]))
array2 = np.amax(abs(arm2[:, i] - arm2[:, i - t]))
if array1 > array2:
ind = np.argmax(abs(arm1[:, i] - arm1[:, i - t]))
joints_on = joint1
else:
ind = np.argmax(abs(arm2[:, i] - arm2[:, i - t]))
joints_on = joint2
if abs(arm1[ind, i] - arm1[ind, i - t]) >= mv1[ind] and abs(arm2[ind, i] - arm2[ind, i - t]) >= mv2[ind]:
if (arm1[ind, i] - arm1[ind, i - t]) and (arm2[ind, i] - arm2[ind, i - t]) > 0:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
elif (arm1[ind, i] - arm1[ind, i - t]) and (arm2[ind, i] - arm2[ind, i - t]) < 0:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
elif (arm1[ind, i] - arm1[ind, i - t]) > 0 > (arm2[ind, i] - arm2[ind, i - t]):
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
else:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
elif abs(arm1[ind, i] - arm1[ind, i - t]) >= mv1[ind]:
if (arm1[ind, i] - arm1[ind, i - t]) > 0:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
else:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [2]
elif abs(arm2[ind, i] - arm2[ind, i - t]) >= mv2[ind]:
if (arm2[ind, i] - arm2[ind, i - t]) > 0:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [1]
else:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [2]
else:
array_out += [joints_on[ind][0]], [joints_on[ind][1]], [0]
#####
array_out = np.reshape(array_out,(len(array_out)/3,3))
ani = animation.FuncAnimation(fig, animate, blit=True, init_func=init)
plt.show()
25 pro Sekunde wären schon klasse^^