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