quarta-feira, 11 de março de 2015

Atividade 4

- Crie uma flor (como demonstrado na sala) e faça com que ela seja criada 100 vezes em posições aleatórias e seu raio mude aleatoriamente (mantendo sua proporção).

código:






primeiramente, cria-se a função circulo(), que é onde estabelece-se as características das elipses que serão criadas na "flor"..
void circulo (float x, float y, float r){
  ellipse(x,y,2*int(r),2*int(r));
}


a função int foi utilizada no raio da ellipse(), porque essa função não aceita valores reais, e a função int serve para que seja utilizada apenas a parte inteira de um número real.

cria-se uma nova função, no caso flor3() e se estabelece seus parâmetros:
x = posição no eixo X
y = posição no eixo y
r = raio da elipse
void flor3 (float x, float y,float r){


logo depois, declara-se as variáveis que serão usadas na resolução do problema:
float diam; 
float diag;
float lado;
diam = 2*r;
lado = diam;
diag = lado*sqrt(2);

  • diam = o diâmetro;
  • lado = lado do quadrado formado pelos raios das esfera;
  • diag = diagonal do quadrado formado pelos raios da esfera, que é o lado multiplicado pela raiz de 2; 

aqui uma demonstração de o porquê a diagonal é usada para mover a bola, que antes era centralizada com o raio da esfera central.
percebe-se, que mesmo utilizando a diagonal, as bolas ficariam distantes da bola central, pra juntar ela, divide-se a diagonal pela metade.



então, cria-se 5 círculos e estabelece-se suas posições:
  circulo(x, y ,r);
  circulo(x + (diag/2), y + (diag/2), r); //inferior direito
  circulo(x - (diag/2), y + (diag/2), r); //inferior esquerdo
  circulo(x + (diag/2), y - (diag/2), r); // superior direito
  circulo(x - (diag/2), y - (diag/2), r); // superior esquerdo

depois, cria-se uma função setup() e é estabelicido o tamanho da tela e a criação de um condicional que fará o que foi pedido na atividade, que é criar 100 flores em posições aleatórias
e com raios aleatórios.
void setup(){
  size(600,600);
  for(int i=0; i < 10; i++){
    flor3(random(0,600),random(0,600), random(10,30));
  }
}

Resultado:





Nenhum comentário:

Postar um comentário