3b1b / 3b1b/manim

Get current frame with caching enabled

Abierto
#2,020 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
93.8k
Forks
7.7k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

### Describe the bug

I’d like to get the current frame number of an animation (start/stop) to sync it in another tool with other stuff. uwezi suggested to use:
```
self.framenumber=0
def sceneUpdater(dt):
self.framenumber += 1
self.add_updater(sceneUpdater)
```
to count frames: this seems to work great when the caching is disabled with `--disable_caching`, but otherwise even a basic scene would fail to render.

**Code**:
```
from manim import *

class CreateCircle(Scene):
def construct(self):
self.framenumber=0
def sceneUpdater(dt):
self.framenumber += 1
self.add_updater(sceneUpdater)

circle = Circle() # create a circle
circle.set_fill(PINK, opacity=0.5).scale(.5) # Change the scale to get different frame numbers
self.play(Create(circle))
print(f"Current frame is {self.framenumber}", flush=True)
self.play(Uncreate(circle))
print(f"Current frame is {self.framenumber}", flush=True)
```
**Wrong display or Error traceback**:
```
$ manimanim -pql test_manim.py CreateCircle | rg "Current frame"
Current frame is 1
Current frame is 2
$ manim -pql test_manim.py CreateCircle --disable_caching | rg "Current frame"
Current frame is 15
Current frame is 30
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.