Escolar Documentos
Profissional Documentos
Cultura Documentos
Ambiente
Claudio Esperana
Programa de Engenharia de Sistemas e Computao
COPPE / UFRJ
Introduo
Ambiente
Sumrio
1
Introduo
Ambiente
Introduo
Ambiente
O que ?
Introduo
Ambiente
Java, essencialmente
J conhecido por muitos profissionais
Multiplataforma
Desempenho razovel
Introduo
Ambiente
Java, essencialmente
Desempenho pode ser insuficiente para algumas aplicaes
Nvel de abstrao sofrvel
Escreve-se muito para fazer pouco
No totalmente orientada a objetos
Introduo
Ambiente
Onde comear?
Introduo
Ambiente
O ambiente Processing
Introduo
Ambiente
Introduo
Ambiente
O ambiente Processing
Interface segue IDE tradicional com menus, uma barra de
ferramentas, um editor de textos com abas, painis para
mensagens e para sada textual
Na documentao, o ambiente chamado de PDE
(Processing Development Environment)
Programas feitos com Processing so chamados de sketches e
podem ser compostos de diversos arquivos de cdigo e outros
recursos como imagens, fontes, bibliotecas, etc
Os sketches so guardados como subdiretrios de uma pasta
chamada sketchbook
Ao executar um sketch, este compilado (caso seja
necessrio) e uma janela com o resultado exibida
O ambiente j vem com diversos exemplos incluidos que
podem ser carregados e visualizados usando o menu File >
Examples
Introduo
Ambiente
A barra de ferramentas
Run: Compila se necessrio e executa o sketch corrente. Se
a tecla shift estiver apertada, a exibio ser em tela cheia
Stop: Termina a execuo do sketch
New: Cria um novo sketch na janela atual. Para criar outra
janela, usar File > New
Open: Abre outro sketch na mesma janela. Para abrir em
outra janela usar File > Open
Save: Salva o sketch no diretrio default. Para usar outro
nome, usar File > Save As
Export: Exporta o sketch como um applet (ou aplicao,
se shift estiver apertado) Java embutido num arquivo html.
Clique no arquivo index.html da pasta criada para carregar
o programa num navegador
Introduo
Ambiente
line (10 ,
line (20 ,
line (30 ,
line (40 ,
line (50 ,
80,
80,
80,
80,
80,
30,
40,
50,
60,
70,
40);
40);
40);
40);
40);
// Linha esquerda
// Linha central
// Linha esquerda
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
background (0);
stroke (255);
strokeWeight (5);
smooth ();
line (10 ,
line (20 ,
line (30 ,
line (40 ,
line (50 ,
80,
80,
80,
80,
80,
30,
40,
50,
60,
70,
//
//
//
//
40);
40);
40);
40);
40);
// Linha esquerda
// Linha central
// Linha esquerda
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
background (0);
stroke (255);
strokeWeight (5);
smooth ();
//
//
//
//
Cor de fundo
Cor de traado
Largura do trao
Arestas mais suaves
Introduo
Ambiente
Introduo
Ambiente
//
//
//
//
Tamanho da janela
Cor de traado
Largura do trao
Arestas mais suaves
void draw () {
background (0);
for (int i = 0; i < 5; i++) {
int x = x0 + i*10;
line(x, y0 , x+20, y0 -40);
}
x0 += 1; // Move desenho para a direita
if (x0 >=200) x0 = 0;
}
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
Interao 1 - cdigo
void setup () {
size (200 ,200);
stroke (255);
strokeWeight (5);
smooth ();
}
//
//
//
//
Tamanho da janela
Cor de traado
Largura do trao
Arestas mais suaves
void draw () {
background (0);
int x0 = mouseX ;
int y0 = mouseY ;
Introduo
Ambiente
Interao 1 - resultado
Introduo
Ambiente
Interao 1 - detalhes
Introduo
Ambiente
Introduo
Ambiente
// Tamanho da janela
// Largura do trao
// Arestas mais suaves
Introduo
Ambiente
Interao 2 - resultado
Introduo
Ambiente
Interao 2 - detalhes
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
void setup () {
size (200 ,200);
strokeWeight (3);
stroke (255);
smooth ();
}
//
//
//
//
Tamanho da janela
Largura do trao
Trao em branco
Arestas mais suaves
void draw () {
background (0);
for (int i = 0; i < nl; i++) {
l [i]. desenha ();
}
}
Introduo
Ambiente
Classes - resultado
Introduo
Ambiente
Classes - detalhes
Bibliotecas de cdigo so frequentemente estruturadas em
classes
Classes encapsulam estruturas de dados e algoritmos
Classes so fbricas de objetos que possuem funcionalidades
em comum
Objetos so instncias de classes (criados com new classe)
Elementos (funes ou variveis) associados a objetos so
chamados de membros
Funes associadas a objetos so chamadas de mtodos
Variveis associadas a objetos so chamadas de atributos
Um membro de um objeto referido por objeto.membro
Dentro da classe, membros podem ser referidos por
this.membro
Introduo
Ambiente
point (x , y )
line (x1 , y1 , x2 , y2 )
triangle (x1 , y1 , x2 , y2 , x3 , y3 )
quad (x1 , y1 , x2 , y2 , x3 , y3 , x4 , y4 )
rect (x , y , width, height)
ellipse (x , y , width, height)
Ponto
Segmento de reta
Tringulo
Quadriltero
Retngulo alinhado
com os eixos
Elipse alinhada com
os eixos
Introduo
Ambiente
void setup () {
size (300 ,300);
}
void draw () {
int d = 40;
for (int x = 0; x < 300; x+=d) {
int y = d;
point (x, y);
y+=d; line (x, y, x+d, y-d/2);
y+=d; ellipse (x,y,d*0.7 ,d *0.5);
y+=d; triangle (x,y,x+d/2,y-d, x+d, y);
y+=d; quad (x, y, x+d/2, y-d/2, x+d, y, x+d/2, y+d/2);
y+=d; rect (x, y, d/2, d/2);
}
}
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
n++;
void draw () {
background (200);
if (n==4) {
bezier (x[0],y[0],x[1],y[1],x[2],y[2],x[3],y[3]);
line (x[0] ,y[0],x[1],y[1]);
line (x[2] ,y[2],x[3],y[3]);
ellipse (x[1],y[1] ,4 ,4);
ellipse (x[2],y[2] ,4 ,4);
}
}
Introduo
Ambiente
Introduo
Ambiente
Propriedades de linhas
stroke (color )
noStroke ()
strokeWeight (thickness)
strokeCap (style)
strokeJoin (style)
smooth ()
noSmooth ()
Cor da linha
Linha no traada
Largura da linha
Estilo de terminao da linha
(ROUND, SQUARE, ou PROJECT)
Estilo de juno de linhas (BEVEL,
MITER, ou ROUND)
Liga antialiasing
Desliga antialiasing
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente
Propriedades de preenchimento
Introduo
Ambiente
Transparncia
Tanto stroke() quanto fill() admitem um segundo
parmetro que controla a transparncia da cor
Transparncia 0 significa totalmente transparente e 255
totalmente opaco
O atributo transparncia tambm conhecido como canal
alfa simplesmente alfa
size (200 ,200);
fill (0);
rect (0, 80, 200 , 40);
fill (255 , 51);
// Bastante transparente
rect (0, 40, 66, 120);
fill (255 , 127); // Transparncia mdia
rect (66, 40, 66, 120);
fill (255 , 204); // Bastante opaco
rect (132 , 40, 66, 120);
Introduo
Ambiente
Introduo
Ambiente
// Elipse branca
// Elipse preta
Introduo
Ambiente
// retngulo branco
// retngulo preto
Introduo
Ambiente
Cor
Introduo
Ambiente
Introduo
Ambiente
Efeito da transparncia
Introduo
Ambiente
Cores em hexadecimal
A notao hexadecimal (base 16) tambm pode ser usada
para especificar cores
Mtodo popular com web designers
Usado em HTML e CSS
255
204
59
206
Hex
#FFFFFF
#000000
#6699CC
#C3F43B
#74CECE
Introduo
Ambiente
O tipo color
Cinza
Cinza transparente
Azul
Azul transparente
Introduo
Ambiente
Sistemas de cores
Introduo
Ambiente
Introduo
Ambiente
Introduo
Ambiente