quarta-feira, 18 de março de 2015

Exercicio 4: Flor Processing

Esse código possui três funções para criar uma "flor" com círculos; a primeira cria um flor em forma de cruz na posição X e Y passadas, no caso X e Y do mouse, no entanto o tamanho dos círculos não varia.

Na função flor2, é criada uma flor em forma de cruz, na posição passada, e o tamanho dos círculos variam de acordo com o valor passado para a função, no caso a posição x do mouse dividido por 8.

Na função flor3, é criada uma flor em formato de X na posição passado, sendo essa a unica diferença entre esta e a função flor 2.

O circulo central da flor, tem seu centro (nesse exemplo) na posição X e Y do mouse, e as outras são feitas em relação a ela, na primeira função como o raio é 20, a posição x do circulo esquerdo é o x do circulo central menos o raio da bola central e o raio do circulo esquerdo, tendo assim seu centro, essa lógica é alterada e assim é feito os outros três círculos, e como os quatro círculos são feitos em relação ao raio e posição do raio central, é possível mudar posição e raio do circulo central sem "quebrar" a figura, por isso a modificação para a função flor2 é bem rapida

Código:

int x;

void setup(){
    size(1080,986);
 
}

void draw(){
    if(mousePressed){
      flor3(mouseX,mouseY,mouseX/8);
   
    }
}

void circulo(float xc,float yc,float r){
    ellipse(xc,yc,2*r,2*r);
}

void flor(float xf, float yf){
    circulo(xf,yf,20);
    circulo(xf,yf-40,20);
    circulo(xf,yf+40,20);
    circulo(xf-40,yf,20);
    circulo(xf+40,yf,20);
 
}

void flor2(float xf, float yf,float r){
    circulo(xf,yf,r);
    circulo(xf,yf-r*2,r);
    circulo(xf,yf+r*2,r);
    circulo(xf-r*2,yf,r);
    circulo(xf+r*2,yf,r);
 
}

void flor3(float xf, float yf,float r){
    circulo(xf,yf,r);
    circulo(xf-r*sqrt(2),yf-r*sqrt(2),r);
    circulo(xf+r*sqrt(2),yf+r*sqrt(2),r);
    circulo(xf+r*sqrt(2),yf-r*sqrt(2),r);
    circulo(xf-r*sqrt(2),yf+r*sqrt(2),r);

}

Nenhum comentário:

Postar um comentário