quinta-feira, 28 de janeiro de 2016

Olho

A atividade de fazer um circulo perseguir o mouse sem sair do raio de um circulo maior exigiu apenas calcular a tangente, utilizei o calculo de distancia entre dois pontos para o circulo menor perseguir o mouse mesmo dentro do circulo maior.

Código:

float tg;
int x = 300, y = 300;
float oX,oY;

float distancia(float x1, float x2){
  return sqrt(pow(x1-x2,2));
}

float distanciaP(float px, float py, float x, float y){
  float c1 = distancia(px,x);
  float c2 = distancia(py,y);
  return sqrt(pow(c1,2)+pow(c2,2));
}

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

void draw(){
  background(255);
  if(mouseX>0){tg = (degrees(atan2(mouseY-y,mouseX-x)));}
  oX = 200/2*cos(radians(tg));
  oY = 200/2*sin(radians(tg));
  fill(255);
  ellipse(x,x,x,x);
  fill(0);
  if(distanciaP(mouseX,mouseY,x,y)<100){
    ellipse(mouseX,mouseY,100,100);
  }
  else{
    ellipse(oX+x,oY+x,100,100);
  }
  fill(180,20,40);
  ellipse(mouseX,mouseY,30,30);
}

Resultado:


0 comentários:

Postar um comentário