#20: Olho




float ang;
float center1, center2, altura;
float x1, y1, x2, y2;
float[] ponto = new float [2];

void setup()
{
  size(400, 400);
}

void draw()
{
  background (150, 150, 150);
  
  center1 = 200;
  altura = 200;

  
  //desenhar olhos
  noStroke();
  fill(255);
  ellipse(center1, altura, 240, 240);
  
  //ajustar angulo do mouse de acordo com o centro da tela
  x1 = mouseX - center1;
  y1 = mouseY - altura;

  
  //descobre o angulo de inclinação do mouse em relação ao centro do olho
  //e move a pupila de acordo com ele
  MovePupil(x1, y1, center1);
}

void MovePupil(float posX, float posY, float center)
{
  if(mouseY < 200)
  {
    ang = 360 + degrees(atan2(posY,posX));
    ponto = p2c(ang, 60);
    fill(0);
  }
  else
  {
    ang = degrees(atan2(posY,posX));
    ponto = p2c(ang, 60);
    fill(0);
  }
  
  ellipse(ponto[0] + center, ponto[1] + altura, 120, 120);
}

float[] p2c(float a, float r)
{
  float coordenada[] = new float [2];
  
  coordenada [0] = r* cos(radians(a));
  coordenada [1] = r* sin(radians(a));
  
  return coordenada;
}

Share this:

CONVERSATION

0 comentários:

Postar um comentário