Tutorial Processing – Salvando imagens para impressão | Processing São Paulo
Neste exemplo, faremos uma animação simples baseada na movimentação do mouse. Vamos lembrar que o efeito de animação pode ser feito com a função draw() , bastando variar alguns parâmetros dos objetos gráficos como posição, cor, transformações ou dimensões:
stroke (0,20);
line (mouseX,0,width-mouseY,height);
Experimentando esse sketch, podemos observar a movimentação da linha conforme o movimento do mouse. Agora, acrescentamos um código (em negrito) que possibilita o "save" de vários frames dessa movimentação no formato PDF:
boolean salvar=false;
if (salvar==true) {
beginRecord(PDF, "linha-###.pdf");
salvar=false;
salvar=true
Explicando o código passo a passo:
Com este novo código, salvamos um arquivo no formato PDF a cada vez que pressionamos o botão do mouse. Os nomes dos arquivos salvos possuem uma numeração sequencial. Execute o código, pressione o mouse algumas vezes e verifique na pasta "data", dentro do sketch (ctrl-K). Vamos explicar o código, primeiro temos antes da função setup():
Para o "save" no formato PDF devemos importar a biblioteca (processing.pdf).
Logo após criamos uma variável do tipo "boolean" (ela pode valer apenas true ou false) que será usada para a verificação se o mouse foi pressionado ou não. Agora, dentro da função draw():
if (salvar==true) verifica (condicional IF) se a variável salvar está valendo true (VERDADEIRO) . Se sim , permite a gravação de um frame com a instrução beginRecord. Preste atenção neste código ("linha.###.pdf"), pois é aqui que determinamos o nome do arquivo a ser salvo. No exemplo, serão salvos arquivos pdfs , numa sequência parecida com esta:
linha-001.pdf
linha-150.pdf
linha-320.pdf
Depois que qualquer desenho for feito, desabilitamos a gravação com endRecord() e preparamos o código para a próxima gravação com salvar=false. A linha salvar=false é importante, pois sem ela não podemos verificar se o mouse foi pressionado ou não.
Note que a verificação do estado da variável "salvar" (se true ou false) será testado constantemente, visto que o código condicional if (salvar==true está dentro do looping draw(). Com a função mousePressed() , a variável "salvar" volta a valer true, permitindo novamente a verificação de if (salvar==true):
Em qualquer momento podemos selecionar um instante da animação para ser gravado num determinado arquivo pdf. O uso da função draw() junto com mousePressed() permite uma ação de " liga (salvar=false) e desliga (salvar=true)".
Adaptando o código
Teste o seu próprio código de animação , bastando substituir a porção responsável pelo desenho dentro da função draw():