Animações gráficas com Python (Manim)
Recentemente se tornou possível construit animações ao estilo das do canal "3blue1brown", pois o criador do canal disponibilizou no Git Hub uma biblioteca Python para tal, ela se chama Manim. Há duas distribuições, uma é o ManimGL mantida pelo criador do canal, e outra chamada Manim mantida pela comunidade. Recentemente ManimGL passou por uma atualização (o que resultou em uma versão instável, por enquanto) a e não utiliza mais o Pycairo rodando por baixo dos panos, agora ela passa a rodar OpenGL, a vantagem dessa última é que se tu tiver uma placa de vídeo, a animação será processada pela placa de vídeo também, não ficando restrita apenas a potência disponível de seu processador, possibilitando criar vídeos com maior velocidade.
O canal Theorem of Beethoven apresenta um tutorial completo desde a instalação até a criação das animações. Além é claro do pequeno tutorial no Git Hub e da documentação. Utilizar o VSCode ajuda muito, a ordem para criar as animações será feita no terminal. Vamos começar com um pequeno exemplo utilizando expressões escritas no padrão LaTex:
Resulta em:
Como isso foi feito exatamente.- .Esse arquivo se chama raiz.py (r minúsculo, é uma escolha), e ele deve ser salvo dentro da pasta chamada "manim". Importante frisar, que pra não ficar uma bagunça conforme vamos criando mais e mais vídeos, pra que isso não ocorra, podemos ter cada projeto em uma pasta específica. Com a única exigência que ela esteja dentro da pasta Manim, e que a pasta esteja na mesma hierarquia das demais manimlib, manim-master...
- Devemos sempre importar ali: from manimlib imports *
- Definimos uma classe, o nome dela vai dar o nome do arquivo de vídeo, passamos sempre aquele argumento Scene, e definimos uma função com nome qualquer e passamos como argumento self.
- A partir daí podemos ir construindo nossa animação, primeiro definimos um objeto e então passamos o comando self.play, para o caso de uma animação, poderia ser self.add, que apenas iria adicionar o objeto.
- Dentro do argumento self.play( ), devemos dizer como queremos animar, se o objeto irá surgir (FadeIn), se será escrito (Write), mudar de cor (FadeToColor)... Há varias opções.
- Obs: self.wait() não está funcionando direito nessa versão, a animação fica bugada, talvez seja corrigido mais pra frente.
- Pra escrever uma expressão matemática podemos passar uma expressão escrita em LaTex pra dentro do Tex( ), com algumas diferenças como usar duas contra barras, e usar {numerador\\over denominador } ao invés de \\frac{num}{den}
- Salvamos o arquivo, e então no terminal navegamos até o diretório manim (Veja como aqui), e então digitamos:
Comentários
Postar um comentário