segunda-feira, 16 de maio de 2016

Aula 13 - Desafio - Ellipsograph




int n = 1;

void setup() {
  size(500, 500);
  colorMode(HSB);
}

void draw() {
  background(0);
  noStroke();
  fill(127);
  ellipse(width/2, height/2, 450, 450);
  for (int m = 1; m <= n; m++) {
    stroke(255/n*m, 255, 255, 127);
    line(width/2+cos(PI/n*m)*225, height/2+sin(PI/n*m)*225, width/2+cos(PI/n*m+PI)*225, height/2+sin(PI/n*m+PI)*225);
  }
  noStroke();
  for (int m = 1; m <= n; m++) {
    fill(255/n*m, 255, 255);
    ellipse(width/2+cos(PI/n*m)*(200*cos(radians(frameCount)+PI/n*m)), height/2+sin(PI/n*m)*(200*cos(radians(frameCount)+PI/n*m)), 50, 50);
  }
  if (int(frameCount)%300 == 0) n++;
}


PS: Foi bem mais fácil do que eu esperava e nem precisei dessas gambiarra de rotate, push/pop matrix, etc. Só de matemática (afinal é esse o foco da disciplina, não?)
PS2: Visto esse código, percebemos que as bolinhas realmente estão girando, só que o raio da rotação delas está variando junto, dando a ilusão de que elas estão em linha reta (e realmente estão)
PS3: Meu código, mesmo com linhas adicionais de enfeite visual, saiu menor do que eu vi do professor George :P
PS4: É melhor que o Xbox One

Nenhum comentário:

Postar um comentário

Pode falar, eu não mordo... Pelo menos não através da internet