domingo, 16 de março de 2014

Laços de Repetição e Funções

Após explicações básicas sobre funções matemáticas e uma revisão de laços de repetição foram propostas a seguintes tarefas :


Tabuleiro de Xadrez

Usando  laços de repetição, a tarefa era criar um tabuleiro de xadrez. Eis o código comentado



void setup(){
  size(400,400);
  background(255);
 
}


boolean preencherPrimeira = false;

void draw(){ 
       for(int vertical=0;vertical<8;vertical++){
          for(int horizontal=0;horizontal<8;horizontal++){
              
             //testar se a primeira linha deve ser preenchida            
             if(preencherPrimeira==true){
                   if(horizontal%2==0){//preenche casas pares
                     fill(0);
                     }else{
                       noFill();
                     }
             }else if (preencherPrimeira==false){
                     if(horizontal%2==1){//preenche casas impares
                      fill(0);
                     }else{
                       noFill();
                     } 
               }
             
             //o centro dos retângulos ´é desenhado em função 
            //das variaveis horizontal e vertical usadas nos laços
             rect(horizontal*50, vertical*50, 50, 50);
             

          }//fimFor
           //sempre que uma linha horizontal é completa 
           //o valor é invertido
           preencherPrimeira =! preencherPrimeira; 
     
    }//fimFor
}//fimDraw


Efeito Halftone

A segunda tarefa segue o mesmo princípio, a diferença é que nesse caso seriam usados círculos e o diametro das elipses seria calculado em função da distância do centro do círculo ao centro da tela.

void setup(){
  size(400,400);
  background(0);
  fill(255);
  noStroke();
}



void draw(){
  
  background(0);
  for (int j=0; j<=400; j+=20){
      for (int i = 0; i <= 400 ; i+=20){
          //a função dist() calcula a distancia entre
          //o centro do circulo e centro da tela
          float d = dist(i, j, 200,200);
          //a posição X e Y do circulo varia em
          //função das variveis usadas nos laços
          ellipse(i, j, d/6 , d/6); 
          //o valor 6 usado para calcular o diametro
          //foi encontrado através de testes.  
      }  
  }
}

Nenhum comentário:

Postar um comentário