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