Na aula que foi apresentado o conceito de coordenadas polares, foi pedido como tarefa que os alunos produzissem no Processing uma aplicação que demonstrasse ser um relógio de segundos tendo seu ponteiro indicando o tempo correto utilizando a função millis(), a qual é uma função .
Considerando que o ponteiro irá ter sua extremidade percorrendo uma circunferência (o formato do relógio é redondo) e pra cada segundo o ângulo em radianos considerado é 2*PI/60 (referente aos sessenta segundos de um minuto), podemos chamar a função millis() e considerar que, dentro de um laço, enquanto millis (que será iniciado no primeiro frame da animação) dividido por 1000(resultando em um segundo no tempo que se passou) for diferente de 0, a linha será redesenhada em seguida.
Na coordenada X do fim da linha, será considerada o cosseno do ângulo (em radianos) multiplicado pelo tempo(uma variável que é incrementada a cada vez que o código é executado) menos PI/2 (isso é feito porque o ponteiro é iniciado no meio da parte superior da circunferência). Já a coordenada Y é considerado o seno do ângulo sob as mesmas condições já citadas.
Segue abaixo o código comentado.
float tempo = 0;
float ang = 2*PI/60;
void setup(){
size(600,600);
}
void draw(){
background(255);
//aqui é esperado um segundo antes do código continuar a ser lido
while (millis()%1000 != 0){}
//coloração da circunferência
stroke(0);
//circunferência que representa o relógio
ellipse(width/2, height/2, 400, 400);
//coloração do ponteiro
stroke(125, 0, 0);
//cálculo de onde a linha será desenhada a cada segundo
line(width/2,height/2,width/2 + 180*cos(tempo*ang - PI/2),height/2 + 180*sin(tempo*ang - PI/2));
tempo++;
}
Nenhum comentário:
Postar um comentário