quarta-feira, 7 de maio de 2014
Questão 3 - Prova
Código da questão 3, para descobrir o ângulo foi utilizado o método atan2() que recebe por parametro os 2 catetos do triangulo para calcular esse angulo, retornando um valor entre -180 e 180. Por isso na hora de realizar o text foi acrescido o valor 180 para fazer o número ficar entre 0 e 360.
float posAng = 0;
int larguraTela = 600;
void setup()
{
background(200);
size(larguraTela, larguraTela);
}
void draw()
{
background(200);
fill(0);
rect(0, 10, larguraTela, 60);
fill(255);
rect(((larguraTela-30)*posAng)/360, 10, 30, 60);
float ang = calculaAngulo(mouseY-larguraTela/2, mouseX-larguraTela/2) ;
stroke(0);
ellipse(larguraTela/2, larguraTela/2, larguraTela/2, larguraTela/2);
polar(larguraTela/4, -ang);
posAng = ang+180;
textSize(20);
text("Angulo " + posAng, larguraTela/2-50, larguraTela - 50);
}
void polar(float r, float a)
{
float x = r*cos(radians(a));
float y = r*sin(radians(a));
//stroke(255, 0, 0);
strokeWeight(2);
line(x+larguraTela/2, larguraTela/2-y, larguraTela/2, larguraTela/2);
}
float calculaAngulo(float y, float x)
{
float ang = atan2(y, x);
ang = degrees(ang);
return ang;
}
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário