sábado, 30 de maio de 2015

Exercício 14: O Olho Que Tudo vê

O código a seguir cria um "olho" que fica olhando para a direção do mouse, para fazer isso foi usado as coordenadas polares para restringir a movimentação da pupila a área da Esclerótica. É calculado a tangente entre o as posições mouseY-height/2 e mouseX-width/2, e a partir dessa tangente é calculado um angulo resultante. após isso é só chamar a função das coordenadas polares (retornaLinha) passando o raio e o angulo. Dependendo do quadrante o programa adiciona um valor ao angulo, para que este retorne o equivalente no quadrante especifico.

Código-Fonte:

int meioX, meioY;
float x, y, anguloRes=0;

void setup() {
  size(800, 800);
  meioX = width/2;
  meioY = height/2;
  mouseX=1;
}

void draw() {
  background(0);

  if(mouseX!=0)
  {
    anguloRes=degrees(atan(float(mouseY-height/2)/float(mouseX-width/2)));
    println(anguloRes);
  }
  if(mouseX<width/2 && mouseY>height/2 || mouseX<width/2 && mouseY<height/2)
  {
    anguloRes=anguloRes+180;
    println(anguloRes);
  }
  if(mouseX>width/2 && mouseY<height/2)
  {
    anguloRes=anguloRes+360;
    println(anguloRes);
  }


  println(anguloRes);
  retornaLinha(25, anguloRes);


  fill(255);
  ellipse(meioX, meioY, 100, 100);
  fill(0);
  ellipse(meioX+x,meioY+y,40,40);

}

void retornaLinha(float r, float ang) {

  x = r * cos(radians(ang));
  y = r * sin(radians(ang));
}

Nenhum comentário:

Postar um comentário