domingo, 18 de outubro de 2015

Desenho de flores no Processing

Na aula do dia 15/10/2015, foi passado em sala de aula a atividade de desenhar e organizar circunferências utilizando funções do Processing.

Primeiro, foi pedido que fossem produzidas uma função chamada "circulo", a qual recebe como parâmetros as coordenadas que ela será colocada no plano e o raio que terá esta circunferência.

Em seguida, os professores pediram que fosse desenhado no Processing 5 circunferências, com a disposição das mesmas em cruz, em uma função chamada "flor". Para isto, utilizei o seguinte código e tive o seguinte resultado:


Em seguida, foi pedido que fosse feita a mesma atividade, mas agora com uma função chamada "flor2" e que recebesse 3 parâmetros:


Finalmente, foi pedido que as circunferências adjacentes a circunferência central passassem a ser dispostas na forma de um "X", ficando as "pétalas" da flor em diagonal, numa nova função chamada "flor3".

Para a disposição destas novas circunferências, foi preciso calcular a distância do centro de cada uma das circunferências, ficando cada uma na "diagonal" caso fosse traçado um quadrado imaginário ligando os centros de cada uma das circunferências. Após serem feitos os cálculos, escrevi o código a seguir e obtive os seguintes resultados:


Com isto, esta concluída a atividade. Segue o código:

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

void draw(){
  flor3(150, 150, 50);
  }
//circulo com preenchimento cinza recebendo para a posição os parâmetros "x" e "y" e para o raio o parâmetro "r"
void circulo(float x, float y, float r){
  ellipse(x, y, r, r);
  fill(128);
}

//primeira flor com apenas 2 parâmetros
void flor(int x, int y){
  circulo(x, y, x);
  circulo(x+y, y, x);
  circulo(x-y, y, x);
  circulo(x, x+y, x);
  circulo(x, x-y, x);
}

//segunda flor com 3 parâmetros
void flor2(int x, int y, int r){
 circulo(x, y, (2*r));
 circulo(x+(2*r), y, (2*r));
 circulo(x-(2*r), y, (2*r));
 circulo(x, y+(2*r), (2*r));
 circulo(x, y-(2*r), (2*r));
}

//terceira flor, com as suas "pétalas" em diagonal
void flor3(float x, float y, float r){
  circulo(x, y, (2*r));
  circulo(x+((2*r)/sqrt(2)), y+(2*r/sqrt(2)), 2*r);
  circulo(x-((2*r)/sqrt(2)), y+(2*r/sqrt(2)), 2*r);
  circulo(x+((2*r)/sqrt(2)), y-(2*r/sqrt(2)), 2*r);
  circulo(x-((2*r)/sqrt(2)), y-(2*r/sqrt(2)), 2*r);
 
 
}

Nenhum comentário:

Postar um comentário