segunda-feira, 15 de junho de 2015

Movimento de um Barco

Usando as funções Seno e Cosseno foi possível recriar o movimento de um barco no mar. Aplicando-se os conceitos das funções pra mostrar a amplitude e o período da onda do mar, e num retângulo representando o barco em movimento sobre a onda.

Código:

int xspacing = 16;   
int w;              
float theta = 0.0;  
float amplitude = 15.0;  
float period = 250.0;  
float dx;  
float[] yvalues;
int angulo;

void setup() {
  size(640, 360);
  w = width+16;
  dx = (TWO_PI / period) * xspacing;
  yvalues = new float[w/xspacing];
}

void draw() {
  background(0);
  calcWave();
  renderWave();
  
  angulo ++;

  if (angulo >360) {
    angulo =0;
  }
  float seno = sin(radians(angulo));
  float coseno = cos(radians(angulo));
  
  rectMode(CENTER);
    fill(100, 255, 200);
    rect(width/2, 20*seno+height/2, 50, 20);
    
}

void calcWave() {
  
  theta += 0.02;
  
  float x = theta;
  for (int i = 0; i < yvalues.length; i++) {
    yvalues[i] = sin(x)*amplitude;
    x+=dx;
  }
}

void renderWave() {
  noStroke();
  fill(255);
  
  for (int x = 0; x < yvalues.length; x++) {
    fill(0, 150, 150);
    ellipse(x*xspacing, height/2+yvalues[x], 16, 16);
  }
}

Resultado:

Nenhum comentário:

Postar um comentário