Я хочу анимировать трехмерный объект (poly3Dcollection). Объект состоит из 32 (треугольных) пятен. Со временем координаты объекта меняются. В этом примере z-значения координат для фрагментов увеличиваются на 0,1 за кадр в анимации, заставляя объект двигаться вверх.
Проблема: анимация действительно медленная. Есть ли способы увеличить скорость анимации для этого примера?
Я уже проверил, где скорость анимации уменьшается. Это не внутри функции, потому что a и b печатаются сразу после друг друга (см. Код).
Я думаю, что проблема в обновлении фигуры с новым кадром. leg1p - это список из 1000 элементов. Каждый элемент состоит из 32 списков (патчей) с каждыми 3 координатами (x, y, z), которые образуют патч.
def animate(i):
print('a')
plt.gcf()
ax = p3A.Axes3D(fig)
ax.set_aspect('equal')
ax.set_xlim3d([-10, 140])
ax.set_xlabel('X')
ax.set_ylim3d([-75, 75])
ax.set_ylabel('Y')
ax.set_zlim3d([-75, 75])
ax.set_zlabel('Z')
ax.elev = 30
ax.azim = -230
ax.dist = 8
ax.add_collection3d(a3.art3d.Poly3DCollection(leg1p[i]))
print('b')
anim = animation.FuncAnimation(fig, animate, frames=1000, interval=40, repeat=False)
plt.show()
В конце я хотел бы иметь более быструю анимацию, потому что мне нужно добавить еще больше объектов. Я также пытаюсь сохранить анимацию, но это занимает еще больше (слишком много) времени.