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; }

Nenhum comentário:

Postar um comentário