sexta-feira, 13 de maio de 2016

Aula 13 - Barquinho




void setup() {
  size(500, 350);
  strokeWeight(2);
  colorMode(HSB);
}
float a = 0;
void draw() {
  // Gradientezinho
  for (float n = 0; n <=  height; n++) {
    stroke(170, 255, map(n, 0, height, 50, 255));
    line(0, n, width, n);
  }
  noStroke();
  // Posição Y do barquinho, é a mesma função da formação de onda pro ponto central
  float y = sin(radians(width/2+frameCount)*3)*10+height/3*2;
  // O ângulo de inclinação do barquinho (Thanks Davi)
  a = asin(cos(radians(width/2+frameCount)*3))/3;
  // Desenha o barquinho
  fill(255);
  beginShape();
  vertex(width/2+cos(PI+a)*20, y+sin(PI+a)*20);
  vertex(width/2+cos(a)*20, y+sin(a)*20);
  vertex(width/2+cos(PI*1.5+a)*25, y+sin(PI*1.5+a)*25);
  endShape();
  fill(127);
  beginShape();
  vertex(width/2+cos(PI+a)*20, y+sin(PI+a)*20);
  vertex(width/2+cos(PI/8*9+a)*30, y+sin(PI/8*9+a)*30);
  vertex(width/2+cos(PI/8*15+a)*30, y+sin(PI/8*15+a)*30);
  vertex(width/2+cos(a)*20, y+sin(a)*20);
  endShape();
  // Forma as ondas
    stroke(160, 255, 127);
  for (int x = 0; x <= width; x++) {
    y = sin(radians(x+frameCount)*3)*10+height/3*2;
    line(x, height, x, y);
  }
}


Valeu Davi!

Nenhum comentário:

Postar um comentário

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