SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
13/10/2014
1
Processing
http://www.processing.org
Cláudio L. V. Oliveira
prof.claudioluis@fatecjd.edu.br
Outubro de 2014
• Processing é uma linguagem de programação
gratuita e de código aberto construída para
artes eletrônicas e projetos visuais;
• Tem como principal objetivo ensinar noções
básicas de programação de computador em
um contexto visual;
• Projeto iniciado em 2001 por Casey Reas e
Ben Fry, ambos ex-membros do Grupo de
Computação do MIT Media Lab.
Processing
13/10/2014
2
Processing
• O IDE da Processing inclui um sketchbook,
uma alternativa para organizar projetos sem
adotar o padrão utilizado na maioria das IDEs.
• Os sketches (programas) criados são uma
subclasse do Java Papplet, classe que
implementa a maioria das funcionalidades da
Processing.
• Ao compilar todo o código do sketch é
traduzido para Java.
Processing
• IDE da Processing:
13/10/2014
3
Processing
• Um dos objetivos da Processing é atuar como
uma ferramenta para não-programadores ou
iniciantes em programação, através da
satisfação imediata com um retorno visual,
por exemplo:
println("Olá Pessoal!");
Processing
• Fácil e rápido retorno visual, por exemplo,
desenho de uma elipse:
size (200, 200); // Tamanho da tela
ellipse (100, 100, 190, 190);
13/10/2014
4
Processing
• Definição de cores (método fill). Um único
parâmetro entre 0 e 255 realizar o
preenchimento em uma escala de tons de
cinza:
size (200, 200);
fill (0);
ellipse (100, 100, 190, 190);
Processing
• Definição de cores (método fill). Três
parâmetros entre 0 e 255 realizar o
preenchimento no padrão RGB:
size (200, 200);
fill(255, 255, 0);
ellipse (100, 100, 190, 190);
13/10/2014
5
Processing
• Desenho de um retângulo:
size (200, 200);
rect (5, 5, 190, 190);
Processing
• Exibição de texto no contexto gráfico:
size(200, 200);
fill(0);
text("Olá Pessoal!", 10, 20);
13/10/2014
6
Processing
• Estrutura básica de um sketch:
void setup() {
size(200, 200);
noLoop();
}
void draw() {
fill (0);
text("Olá Pessoal!", 10, 20);
}
Processing
• Unindo os conceitos para desenvolver
pequenos sketches:
void setup() {
size(200, 200);
noLoop();
}
void draw() {
fill(0);
rect (5, 5, 80, 20);
fill (255);
text("Olá Pessoal!", 10, 20);
}
13/10/2014
7
Processing
• Animação simples:
int i = 10;
void setup() {
size(200, 200);
}
void draw() {
background(0);
fill (255);
text("Olá Pessoal!", 10, i);
delay(150);
i = i + 10;
if (i > height)
i = 10;
}
Processing
• Fontes e alinhamento do texto:
int i = 10;
void setup() {
size(200, 200);
textFont(createFont("SansSerif",18));
textAlign(CENTER);
}
// Implementar o método draw() ...
13/10/2014
8
Processing
• Outra animação:
int i = 10, p = 10;
void setup() {
size(200, 200);
}
void draw() {
background(0);
fill (0, 255, 0);
ellipse (width/2, i, 25, 25);
delay(100);
i = i + p;
if ((i > height) || (i < 0))
p = p * -1;
}
Processing
• Utilização de imagens:
PImage bola;
int i = 10, p = 10;
void setup() {
size(200, 200);
bola = loadImage("bola.gif");
}
void draw() {
background(0);
fill (0, 255, 0);
image (bola, width/2, i);
delay(100);
i = i + p;
if ((i > (height - bola.height)) || (i < 0))
p = p * -1;
}
13/10/2014
9
Processing
• Eventos do mouse:
void setup() {
frame.setTitle("UsoMouse");
size (360, 180);
fill (255); // Cor branca
}
void draw() {
if (mousePressed) {
ellipse(mouseX, mouseY, 100, 100);
}
else {
rect(mouseX, mouseY, 100, 100);
}
}
Processing
• Bibliotecas – Exemplo G4P (GUI for
Processing):
13/10/2014
10
Processing
• Bibliotecas:
import g4p_controls.*;
GLabel lNome;
GTextField tNome;
String imagens[];
GImageButton botao;
void setup() {
frame.setTitle("Biblioteca G4P");
size (360, 180);
background(245);
lNome = new GLabel(this, 10, 20, 340, 20, "Digite o seu
nome:");
tNome = new GTextField(this, 10, 40, 340, 20);
imagens = new String[] {"botao-ok.png", "botao-ok.png",
"botao-ok-press.png" };
botao = new GImageButton(this, 10, 70, imagens);
}
Processing
• Bibliotecas:
void draw() {
}
public void handleButtonEvents(GImageButton
controle, GEvent evento) {
if (controle == botao) {
fill(0);
textFont(createFont("SansSerif",18));
text ("Olá, " + tNome.getText(), 10, 160);
}
}

Mais conteúdo relacionado

Mais procurados

Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicaçõesnataferraz
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoRobson Ferreira
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)guest14543db
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosRafael Martins
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivosFlávio Freitas
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosFabio Spanhol
 
Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11André Phillip Bertoletti
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptxwilliam Sarti José
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoMonike Santos
 

Mais procurados (20)

Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentação
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
O compilador dev c++
O compilador dev c++O compilador dev c++
O compilador dev c++
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos Introdutórios
 
Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Pi1415 tudo
Pi1415 tudoPi1415 tudo
Pi1415 tudo
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a Programação
 

Destaque

Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...
Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...
Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...Kickante
 
Projeto de extensão MANS
Projeto de extensão MANSProjeto de extensão MANS
Projeto de extensão MANSLorena Marques
 
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaVisys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaSonia Fernandes Bogo
 
Navegando01 abril.2012
Navegando01 abril.2012Navegando01 abril.2012
Navegando01 abril.2012Luis Contreras
 
The Top Five Benefits of Summer Day Camp
The Top Five Benefits of Summer Day CampThe Top Five Benefits of Summer Day Camp
The Top Five Benefits of Summer Day CampBuzz Marketing Pros
 
Programa_Digital_Marketing_Lisboa_weekend
Programa_Digital_Marketing_Lisboa_weekendPrograma_Digital_Marketing_Lisboa_weekend
Programa_Digital_Marketing_Lisboa_weekendGon Bernardino
 
Winplot: Estudando Função do 1º Grau Tarefa 5
Winplot: Estudando Função do 1º GrauTarefa 5Winplot: Estudando Função do 1º GrauTarefa 5
Winplot: Estudando Função do 1º Grau Tarefa 5Euzenir
 
How Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceHow Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceBuzz Marketing Pros
 
Sincronizar la agenda telefónica de nuestro smartphone
Sincronizar la agenda telefónica de nuestro smartphoneSincronizar la agenda telefónica de nuestro smartphone
Sincronizar la agenda telefónica de nuestro smartphoneJosé Manuel García
 
O relato da carreira de um programador e universitário cego
O relato da carreira de um programador e universitário cegoO relato da carreira de um programador e universitário cego
O relato da carreira de um programador e universitário cegoJosé Yoshiriro
 

Destaque (19)

Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...
Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...
Como o crowdfunding pode ajudar a financiar o seu negócio? - O Poder da Rede ...
 
Inspeção de Engrenagens Utilizando Eddy Current Array
Inspeção de Engrenagens Utilizando Eddy Current ArrayInspeção de Engrenagens Utilizando Eddy Current Array
Inspeção de Engrenagens Utilizando Eddy Current Array
 
Signicado deas palavras
Signicado deas palavrasSignicado deas palavras
Signicado deas palavras
 
Projeto de extensão MANS
Projeto de extensão MANSProjeto de extensão MANS
Projeto de extensão MANS
 
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaVisys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
 
Navegando01 abril.2012
Navegando01 abril.2012Navegando01 abril.2012
Navegando01 abril.2012
 
The Top Five Benefits of Summer Day Camp
The Top Five Benefits of Summer Day CampThe Top Five Benefits of Summer Day Camp
The Top Five Benefits of Summer Day Camp
 
Arte contemporânea
Arte contemporânea Arte contemporânea
Arte contemporânea
 
Fazer um-blog
Fazer um-blogFazer um-blog
Fazer um-blog
 
Como-ganhar-dinheiro
Como-ganhar-dinheiroComo-ganhar-dinheiro
Como-ganhar-dinheiro
 
Planilla de calculo
Planilla de calculoPlanilla de calculo
Planilla de calculo
 
Programa_Digital_Marketing_Lisboa_weekend
Programa_Digital_Marketing_Lisboa_weekendPrograma_Digital_Marketing_Lisboa_weekend
Programa_Digital_Marketing_Lisboa_weekend
 
Winplot: Estudando Função do 1º Grau Tarefa 5
Winplot: Estudando Função do 1º GrauTarefa 5Winplot: Estudando Função do 1º GrauTarefa 5
Winplot: Estudando Função do 1º Grau Tarefa 5
 
How Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceHow Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-Confidence
 
Sincronizar la agenda telefónica de nuestro smartphone
Sincronizar la agenda telefónica de nuestro smartphoneSincronizar la agenda telefónica de nuestro smartphone
Sincronizar la agenda telefónica de nuestro smartphone
 
O relato da carreira de um programador e universitário cego
O relato da carreira de um programador e universitário cegoO relato da carreira de um programador e universitário cego
O relato da carreira de um programador e universitário cego
 
Alissandra saquerema
Alissandra saqueremaAlissandra saquerema
Alissandra saquerema
 
Proceso segundo esquicio
Proceso segundo esquicioProceso segundo esquicio
Proceso segundo esquicio
 
Gestão de Erros
Gestão de ErrosGestão de Erros
Gestão de Erros
 

Semelhante a Processing-introducao

Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
API para jogos Isométricos
API para jogos IsométricosAPI para jogos Isométricos
API para jogos IsométricosMichel Felipe
 
1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdfjoaoJunior93
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 
Plano de Aula História da Arte
Plano de Aula História da ArtePlano de Aula História da Arte
Plano de Aula História da ArteCeyrla Mendes
 
Novas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoNovas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoUniversidade de Lisboa
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFXjesuinoPower
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeEder Magalhães
 
Aula 01- web designer
Aula 01- web designerAula 01- web designer
Aula 01- web designerRoney Sousa
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimentoMax_Antonelli
 

Semelhante a Processing-introducao (20)

Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
API para jogos Isométricos
API para jogos IsométricosAPI para jogos Isométricos
API para jogos Isométricos
 
1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
CV Alexandre R. de Castro
CV Alexandre R. de CastroCV Alexandre R. de Castro
CV Alexandre R. de Castro
 
Delphi6bd
Delphi6bdDelphi6bd
Delphi6bd
 
Aula1
Aula1Aula1
Aula1
 
Plano de Aula História da Arte
Plano de Aula História da ArtePlano de Aula História da Arte
Plano de Aula História da Arte
 
Novas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoNovas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino Básico
 
Introducao
IntroducaoIntroducao
Introducao
 
Apostila curso-autocad-2017
Apostila curso-autocad-2017 Apostila curso-autocad-2017
Apostila curso-autocad-2017
 
Python Para Maemo
Python Para MaemoPython Para Maemo
Python Para Maemo
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
Aula 01- web designer
Aula 01- web designerAula 01- web designer
Aula 01- web designer
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimento
 
Unidade 7 slides digital na escola
Unidade 7 slides digital na escolaUnidade 7 slides digital na escola
Unidade 7 slides digital na escola
 
Unidade 7 Slides digital na escola
Unidade 7 Slides digital na escolaUnidade 7 Slides digital na escola
Unidade 7 Slides digital na escola
 

Processing-introducao

  • 1. 13/10/2014 1 Processing http://www.processing.org Cláudio L. V. Oliveira prof.claudioluis@fatecjd.edu.br Outubro de 2014 • Processing é uma linguagem de programação gratuita e de código aberto construída para artes eletrônicas e projetos visuais; • Tem como principal objetivo ensinar noções básicas de programação de computador em um contexto visual; • Projeto iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computação do MIT Media Lab. Processing
  • 2. 13/10/2014 2 Processing • O IDE da Processing inclui um sketchbook, uma alternativa para organizar projetos sem adotar o padrão utilizado na maioria das IDEs. • Os sketches (programas) criados são uma subclasse do Java Papplet, classe que implementa a maioria das funcionalidades da Processing. • Ao compilar todo o código do sketch é traduzido para Java. Processing • IDE da Processing:
  • 3. 13/10/2014 3 Processing • Um dos objetivos da Processing é atuar como uma ferramenta para não-programadores ou iniciantes em programação, através da satisfação imediata com um retorno visual, por exemplo: println("Olá Pessoal!"); Processing • Fácil e rápido retorno visual, por exemplo, desenho de uma elipse: size (200, 200); // Tamanho da tela ellipse (100, 100, 190, 190);
  • 4. 13/10/2014 4 Processing • Definição de cores (método fill). Um único parâmetro entre 0 e 255 realizar o preenchimento em uma escala de tons de cinza: size (200, 200); fill (0); ellipse (100, 100, 190, 190); Processing • Definição de cores (método fill). Três parâmetros entre 0 e 255 realizar o preenchimento no padrão RGB: size (200, 200); fill(255, 255, 0); ellipse (100, 100, 190, 190);
  • 5. 13/10/2014 5 Processing • Desenho de um retângulo: size (200, 200); rect (5, 5, 190, 190); Processing • Exibição de texto no contexto gráfico: size(200, 200); fill(0); text("Olá Pessoal!", 10, 20);
  • 6. 13/10/2014 6 Processing • Estrutura básica de um sketch: void setup() { size(200, 200); noLoop(); } void draw() { fill (0); text("Olá Pessoal!", 10, 20); } Processing • Unindo os conceitos para desenvolver pequenos sketches: void setup() { size(200, 200); noLoop(); } void draw() { fill(0); rect (5, 5, 80, 20); fill (255); text("Olá Pessoal!", 10, 20); }
  • 7. 13/10/2014 7 Processing • Animação simples: int i = 10; void setup() { size(200, 200); } void draw() { background(0); fill (255); text("Olá Pessoal!", 10, i); delay(150); i = i + 10; if (i > height) i = 10; } Processing • Fontes e alinhamento do texto: int i = 10; void setup() { size(200, 200); textFont(createFont("SansSerif",18)); textAlign(CENTER); } // Implementar o método draw() ...
  • 8. 13/10/2014 8 Processing • Outra animação: int i = 10, p = 10; void setup() { size(200, 200); } void draw() { background(0); fill (0, 255, 0); ellipse (width/2, i, 25, 25); delay(100); i = i + p; if ((i > height) || (i < 0)) p = p * -1; } Processing • Utilização de imagens: PImage bola; int i = 10, p = 10; void setup() { size(200, 200); bola = loadImage("bola.gif"); } void draw() { background(0); fill (0, 255, 0); image (bola, width/2, i); delay(100); i = i + p; if ((i > (height - bola.height)) || (i < 0)) p = p * -1; }
  • 9. 13/10/2014 9 Processing • Eventos do mouse: void setup() { frame.setTitle("UsoMouse"); size (360, 180); fill (255); // Cor branca } void draw() { if (mousePressed) { ellipse(mouseX, mouseY, 100, 100); } else { rect(mouseX, mouseY, 100, 100); } } Processing • Bibliotecas – Exemplo G4P (GUI for Processing):
  • 10. 13/10/2014 10 Processing • Bibliotecas: import g4p_controls.*; GLabel lNome; GTextField tNome; String imagens[]; GImageButton botao; void setup() { frame.setTitle("Biblioteca G4P"); size (360, 180); background(245); lNome = new GLabel(this, 10, 20, 340, 20, "Digite o seu nome:"); tNome = new GTextField(this, 10, 40, 340, 20); imagens = new String[] {"botao-ok.png", "botao-ok.png", "botao-ok-press.png" }; botao = new GImageButton(this, 10, 70, imagens); } Processing • Bibliotecas: void draw() { } public void handleButtonEvents(GImageButton controle, GEvent evento) { if (controle == botao) { fill(0); textFont(createFont("SansSerif",18)); text ("Olá, " + tNome.getText(), 10, 160); } }