segunda-feira, 1 de fevereiro de 2016

Relógio de segundos

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