[Aula 6] Estruturas de repetição


Diretriz:
  • Utilize um loop em duas dimensões para fazer um grid de retângulos na tela.
  • Faça com que cada um dos retângulos tenha um tamanho menor conforme esteja mais
próximo do centro da tela.
  • Faça com que cada um dos retângulos tenha uma cor diferente (mais escura, mais clara,
mais próxima do vermelho etc.) de acordo com sua distância do centro da tela.




- Declaram-se as variáveis que armazenarão o tamanho e as cores;
- No setup() declara-se o tamanho da tela;

- No draw() define-se o plano de fundo para branco (255);
- No draw() cria-se o laço aninhado de for, com as variáveis contadoras i e j. "i" será para linhas, enquanto "j" será para colunas.
- define-se o tamanho dos quadrados pelo incremento de i e j, no caso, 20 px. Define-se isso no incremento dessas variáveis no laço pois os valores de i e j definirão as posições "x e y" dos quadrados criados. A cada 20 pixels, ou seja, a distância de um quadrado, cria-se um quadrado novo.
- atribui-se o valor da variável "tam" (tamanho) a partir da distância(dist()) entre o ponto atual de i e j do centro da tela (width/2 ou height/2). Divide-se o valor da distância por 6 para que se tenham modificações adequadas.

- Atribuem-se valores para as variáveis de cor de modo que elas funcionem quase como que a cor complementar dividida dos quadrados uniformes.

- Cria-se a condição para colorir o interior dos quadrados: se a variável tam tiver valor menor que 25, muda seu valor de acordo com o valor das variáveis r, g e b. Senão, os quadrados ganham uma matiz entre magenta, lilás e amarelo, dividido em quartos pelo tamanho da tela.

__________________________________
 Código do exercício:

float tam;
float r,g,b;

void setup(){
size(600,600);

}

void draw(){
 
background (255);
 
  for(int i = 0; i <= width; i+=20){ //linhas
     for (int j = 0; j <= height; j+=20){ //colunas
       tam = dist(i,j, width/2,height/2)/6;  //dita o tamanho dos quadrados pela distância do centro

       r = 200;
       g = 255-j/2+(j/8);
       b = 255-i/2+(i/8);
      
       if (tam < 25){
          fill (r,g,b) ;
       } else{
       fill (200,20+(j/4),100+(i/4));
       }
      
       rect(i,j,tam,tam);

     }
  }
 
}

Comentários

Postagens mais visitadas deste blog