Aqui está o resultado obtido:
Clique para assistir no vimeo: Trabalho 2
Para Download: Download
int [] tons = new int[256]; PImage img; int maiorValor = 0; int tomfrequente = 0;
void setup(){ size(640,680); int pos, t; img = loadImage("oberyn.jpg"); for (int x=0; x<640; x++){ for (int y=0; y<480; y++){ pos = y*640+x; t = (int)green(img.pixels[pos]); tons[t] = tons[t]+1; } }
void drawGraphics() { int wBar = 2; int hBar = 0; int x = 0; int y = 0; for(int i = 0 ; i <256 ; i++) { fill(10,55,100); hBar = (640 * tons[i])/maiorValor; rect(x,height-hBar,wBar,hBar); x+=2; }
int tomFrequente(int histograma[]) { int pos = 0; int maior = 0 ; for(int i = 0; i < 256; i++) { if(histograma[i] > maior) { maior = histograma[i]; pos = i; } } this.maiorValor = maior; return pos; }
![]() |
| Imagem Utilizada |
![]() |
| Tons de Azul |
![]() |
| Tons de Verde |
![]() |
| Tons de Vermelho |
cont = cont/32; float desvio = 0; for(int i = 1; i < 32; i++) { float p = pow(i - cont, 2); desvio+= p; } desvio = desvio / 32; println("Media: " + cont*32); println("Desvio padrão: " + sqrt(desvio)); }
int altura; int largura;
void setup(){ size(760,500); rect(50, 50, 660, 400); for(int i = 0; i < 24; i++)//linhas horizontais { stroke(200); line(50, 66 + (i * 16), 710, 66 + (i * 16)); } for(int i = 0; i <= 25; i++)//informação de quantidade { fill(0); text(25 - i, 25, 50 + (i * 16) + 5); } for(int i = 0; i <= 10; i++)//linhas horizontais { stroke(0); noFill(); line(110 + (60 * i), 50, 110 + (60 * i), 450); }
for(int largura = 0; largura <= 10; largura++) { println("Largura: " + largura); int altura = 10-largura; println("Altura: " + altura); int perimetro = calculaPerimetro(largura,altura); println("Perimetro: " + perimetro); int area = calculaArea(largura,altura); println("Area: " + area); println(""); //noStroke(); fill(200,0,0); //largura rect(50,450 - (400*largura)/25, 20, (400*largura)/25); fill(0, 200, 0);//altura rect(70, 450 - (400 * altura)/25, 20, (400 * altura)/25); fill(0, 0, 200);//area rect(90, 450 - (400 * area)/25, 20, (400 * area)/25); translate(60,0); }
fill(0); textSize(32); translate(-660,0); text("Largura x Altura x Area", 200, 35); textSize(24); text("largura", 150, 485); text("altura", 350, 485); text("area", 550, 485); fill(200, 0, 0); rect(250, 465, 25, 25); fill(0, 200, 0); rect(440, 465, 25, 25); fill(0, 0, 200); rect(620, 465, 25, 25); //stroke(1); //strokeWeight(1); //NumAndGrid(); }
int calculaPerimetro(int Largura, int Altura){ return 2*Largura + 2*Altura; } int calculaArea(int Largura, int Altura){ return Largura*Altura; }
int numeroGeracao = 1; int[] mundoAtual = new int[34]; int[] mundoNovo = new int[34];
void setup() { frameRate(1); size(800, 400); background(0); for(int i = 1; i < 32; i++) { mundoAtual[i] = (int)random(2); //println(mundoAtual[i]); } }
void draw() { int numeroCelulas = 0; mostraMundo(); for(int i = 1; i < 32; i++) { numeroCelulas = cruzaCelulas(i); if(numeroCelulas == 2) mundoNovo[i] = 1; else mundoNovo[i] = 0; } arrayCopy(mundoNovo, mundoAtual, 34); numeroGeracao++; }
void mostraMundo() { int cont = 0; for(int i = 1; i < 32; i++) { if (mundoAtual[i] == 1) cont++; //ellipse(i * 20, numeroGeracao * 30, 20, 20); } float vivos = (float)cont/32 * TWO_PI; println(cont); //ellipse(numeroGeracao * 30, height-y, 20, 20); fill(172, 25, 22);//ESPAÇOS OCUPADOS arc(width/2, height/2, width/2, width/2, 0, vivos); fill(10, 175, 10);//ESPAÇOS LIVRES arc(width/2, height/2, width/2, width/2, vivos, TWO_PI); }
int cruzaCelulas(int posicao) { int numeroCelulas = mundoAtual[posicao - 1] + mundoAtual[posicao] + mundoAtual[posicao + 1]; return numeroCelulas; }
void mostraMundo() { int cont = 0; for(int i = 1; i < 32; i++) { if (mundoAtual[i] == 1) cont++; //ellipse(i * 20, numeroGeracao * 30, 20, 20); } float vivos = (float)cont/32 * height; float mortos = (float)(32-cont)/32 * height; println(cont); fill(0,200,0); rect(numeroGeracao*30, height - vivos, 10, vivos); fill(200, 0, 0); rect(numeroGeracao*30 + 11, height - mortos, 10, mortos); }
![]() |
| jogo da vida - gráfico de pizza |
![]() |
| jogo da vida - gráfico de barra |
int numeroGeracao = 1; int[] mundoAtual = new int[34]; int[] mundoNovo = new int[34];
void setup() { frameRate(1); size(800, 400); background(255); for(int i = 1; i < 32; i++) { mundoAtual[i] = (int)random(2); //println(mundoAtual[i]); } }
void draw() { int numeroCelulas = 0; mostraMundo(); for(int i = 1; i < 32; i++) { numeroCelulas = cruzaCelulas(i); if(numeroCelulas == 2) mundoNovo[i] = 1; else mundoNovo[i] = 0; } arrayCopy(mundoNovo, mundoAtual, 34); numeroGeracao++; }
void mostraMundo() { int cont = 0; for(int i = 1; i < 32; i++) { if (mundoAtual[i] == 1) cont++; //ellipse(i * 20, numeroGeracao * 30, 20, 20); } float vivos = (float)cont/32 * height; float mortos = (float)(32-cont)/32 * height; println(cont); strokeWeight(5); stroke(0,255,0); line(numeroGeracao*30 , height - vivos, numeroGeracao*30, height); stroke(255,255,0); line(numeroGeracao*30 + 11, height - mortos, numeroGeracao*30 + 11, height); }
int cruzaCelulas(int posicao) { int numeroCelulas = mundoAtual[posicao - 1] + mundoAtual[posicao] + mundoAtual[posicao + 1]; return numeroCelulas; }
![]() |
| Imagem meramente ilustrativa |
PImage imgOriginal; PImage imgOriginal1; PImage imgOriginal2; float r,g,b,r1, g1, b1; float a; int pos;
void setup(){ size(320,240); imgOriginal = loadImage("walter.jpg"); imgOriginal1 = loadImage("cook.jpg"); imgOriginal2 = loadImage("heisenberg.jpg"); }
void draw(){ loadPixels(); a = mouseY/239.0; b = 1-(mouseY/239.0); println(a,b);
for (int x=0; x<320;x++){ for(int y=0; y<240;y++){ pos = y*320+x; if(a >= 0 && a <= 0.5){ r= (2*a)*red(imgOriginal.pixels[pos]) + (1 - (2*a))*red(imgOriginal1.pixels[pos]); g= (2*a)*green(imgOriginal.pixels[pos]) + (1 -(2*a))*green(imgOriginal1.pixels[pos]); b=(2*a)*blue(imgOriginal.pixels[pos]) + (1 -(2*a))*blue(imgOriginal1.pixels[pos]); pixels[pos] = color(r,g,b); } if(a > 0.5 && a <= 1){ r1= (1-(2*b))*red(imgOriginal2.pixels[pos]) + (2*b)*red(imgOriginal.pixels[pos]); g1= (1 -(2*b))*green(imgOriginal2.pixels[pos]) +(2*b)*green(imgOriginal.pixels[pos]); b1= (1 -(2*b))*blue(imgOriginal2.pixels[pos]) + (2*b)*blue(imgOriginal.pixels[pos]); pixels[pos] = color(r1,g1,b1); } } }
updatePixels();
}
PImage imgOriginal; PImage imgCopia = createImage(300,400,RGB); PImage imgCopia2 = createImage(300,400,RGB); PImage imgCopia3 = createImage(300,400,RGB); PImage imgCopia4 = createImage(300,400,RGB); float r,g,b; int pos;
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgOriginal.pixels[pos]) + random(50); g = green(imgOriginal.pixels[pos]) + random(50); b = blue(imgOriginal.pixels[pos]) + random(50); pos = y*300 + x; imgCopia.pixels[pos] = color(r,g,b); } }para o efeito de preto e branco, faz-se a media ponderada da quantidade de cada cor num pixel.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia.pixels[pos]); g = green(imgCopia.pixels[pos]); b = blue(imgCopia.pixels[pos]); pos = y*300 + x; float m = (0.3*r + 0.59*g + 0.11*b); imgCopia2.pixels[pos] = color(m,m,m); } }para o efeito avermelhado, aumenta-se o valor da cor vermelha.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia2.pixels[pos]); g = green(imgCopia2.pixels[pos]); b = blue(imgCopia2.pixels[pos]); pos = y*300 + x; imgCopia3.pixels[pos] = color (r + 50,g,b); } }para o efeito sépia, reduz-se a quantidade de azul da imagem.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia3.pixels[pos]); g = green(imgCopia3.pixels[pos]); b = blue(imgCopia3.pixels[pos]); pos = y*300 + x; imgCopia4.pixels[pos] = color (r,g,b - 50); } }
void draw(){ image(imgOriginal,0,0); image(imgCopia,300,0); image(imgCopia2,600,0); image(imgCopia3,900,0); image(imgCopia4,1200,0); }
void draw(){ int hora = hour(); int minuto = minute(); numero(hora, 0); numero(minuto,140); }
void numero(int num, int pos) { int unidade = num%10; int dezena = num/10;
PImage img1; img1 = loadImage("n(" + dezena + ").png"); image (img1, pos, 0); PImage img2; img2 = loadImage("n(" + unidade + ").png"); image (img2, pos + 70, 0); }
if (mouseX !=0) { dx = mouseX - 400 ; dy = mouseY - 300 ; tg = dy/dx; } a = atan(tg);
if (mouseX<400) { a += PI; }
if (mouseX>400 && mouseY<300) { a += TWO_PI; }
X=cos(a)*(raio - 70); Y=sin(a)*(raio - 70);
dist =distancia(400, mouseX, 300, mouseY); fill(0); if (dist>=(raio-70)) { ellipse(400+X, 300+Y, 100, 100); } else { ellipse(mouseX, mouseY, 100, 100); } } int distancia(float X1, float X2, float Y1, float Y2) { int resposta; resposta = (int)sqrt(((X1-X2)*(X1-X2)) + ((Y1-Y2)*(Y1-Y2))); return resposta; }
float x; float y; float sec; void setup(){ size(600,600); }
void draw(){ sec = (millis()/1000); println(sec); cronometro(PI+(PI/2),100); }a variável porce é utilizada para fazer a movimentação do ponteiro, para cada 15 segundos o ponteiro tem que percorrer 60º, ou seja, PI/2 radianos, se para cada meio segundo tenho PI/2, para 1 segundo tenho esse valor divido por 15, para cada 15% da ellipse deve-se percorrer o equivalente a PI/30 radianos.
void cronometro(float ang, float raio){ float porce = sec*(PI/30); x = (cos(ang+porce)*raio); y = (sin(ang+porce)*raio); ellipse(width/2,height/2,raio*2,raio*2); line(width/2,height/2,x+width/2,y+(height/2)); }
![]() |
| Adicionar legenda |
float x=0; float y; float x1=0; float y1=0; void setup(){ size(800,600); noStroke(); rectMode(CENTER); }
void draw(){ background(120); y = sin(x); x+=0.1; onda(); barco(); } void onda(){ x1=0; for(int i=0; i<800; i++){ y1 = sin(x1); x1+=0.1; ellipse(20*x1,20*y1+280,5,5); } } void barco(){ triangle(20*x,20*y + 280, 20*x + 25, 20*y + 230, 20*x, 20*y + 180); rect(20*x,20*y+280,50,20); }
int n = 6; float raio = 100;
void setup(){ noFill(); size(800,600); float ang = 2*PI/n; float inc = 0; float x; float y; x = raio*cos(inc); y = raio*sin(inc); beginShape(); vertex(x + width/2,y + height/2); for (int i = 0; i < n; i++){ inc += ang; x = raio*cos(inc); y = raio*sin(inc); strokeWeight(1); vertex(x + width/2, y + height/2); } endShape(CLOSE); }
![]() |
| Primeiro e-mail trocado com a criadora da logo. |
![]() |
| Segundo e-mail trocado com a criadora da logo. |
int mod = 50; void setup(){ size(800,800); } void draw(){ background(0); desenhaCorpo(250,307,mod); antenas(250,307, mod); } void desenhaCorpo (float x, float y, float modulo){ //cabeça noStroke(); fill(151,199,24); arc(x + 3.07*modulo, y - 0.2*modulo, 6.14*modulo, 6.14*modulo, PI, 2*PI, OPEN); //olhos fill(255); ellipse(x + 1.66*modulo, y - 1.62*modulo, 0.52*modulo, 0.52*modulo); ellipse(x + 4.48*modulo, y - 1.62*modulo, 0.52*modulo, 0.52*modulo); //pontas das antenas fill(151,199,24); ellipse(x + 1.12*modulo, y - 3.64*modulo, 0.16*modulo, 0.16*modulo); ellipse(x + 5.02*modulo, y - 3.64*modulo, 0.16*modulo, 0.16*modulo); //braço esquerdo fill(151,199,24); ellipse(x + 7.1*modulo, y + 0.58*modulo, 1.4*modulo, 1.4*modulo); ellipse(x + 7.1*modulo, y + 3.42*modulo, 1.4*modulo, 1.4*modulo); rect(x + 6.4*modulo, y + 0.58*modulo, 1.4*modulo, 2.8*modulo); //cintura rect(x, y, 6.14*modulo, 4.52*modulo); ellipse(x + 0.7*modulo, y + 4.5*modulo,1.4*modulo, 1.4*modulo); ellipse(x + 5.44*modulo, y + 4.5*modulo, 1.4*modulo, 1.4*modulo); rect(x + 0.7*modulo, y + 4.5*modulo, 4.74*modulo, 0.7*modulo); //braço direito ellipse(x - 0.96*modulo, y + 0.58*modulo, 1.4*modulo, 1.4*modulo); ellipse(x - 0.96*modulo, y + 3.42*modulo, 1.4*modulo, 1.4*modulo); rect(x - 1.66*modulo, y + 0.58*modulo, 1.4*modulo,2.8*modulo); //pernas rect(x + 1.22*modulo, y + 4.5*modulo, 1.4*modulo, 2.2*modulo); rect(x + 3.52*modulo, y + 4.5*modulo, 1.4*modulo, 2.2*modulo); ellipse( x + 1.92*modulo, y + 6.7*modulo, 1.4*modulo, 1.4*modulo); ellipse( x + 4.22*modulo, y + 6.7*modulo, 1.4*modulo, 1.4*modulo); } void antenas(float x, float y, float modulo){ strokeWeight(round(0.16*modulo)); stroke(151,199,24); line(x + 1.12*modulo, y - 3.64*modulo, x + 1.66*modulo, y - 2.74*modulo); line(x + 5.02*modulo, y - 3.64*modulo, x + 4.48*modulo, y - 2.74*modulo); }