sexta-feira, 29 de maio de 2015

Exercício 13: O Relógio de Segundos

O código a seguir cria um pequeno relógio com um único ponteiro de segundos. O programa é simples e usa coordenadas polares. Ao iniciar a variável tempoInicial salva o tempo em milisegundos inicial, depois o programa testa sempre no inicio da funcao draw se entre tempoAtual e o tempoInicial  a diferença e maior igual a 1000 (1 segundo), se sim, incrementa a variáveis segundos em 1, outro teste reinicia a variável segundos para 0, a posição do ponteiro e gerada usando uma função de coordenadas polares, e seu angulo e calculado com uma pequena razão: (Segundos*360)/60. Depois disso é só inverter o x, para que o ponteiro gire em sentido horário, e diminuir 270 no angulo para que ele comece de cima.



Código-Fonte:

int meioX, meioY,tempoInicial,tempoAtual,segundos=0,anguloRes=0;
float x,y;

void setup(){
  size(800,600);
  meioX = width/2;
  meioY = height/2;
  tempoInicial = millis();
}

void draw(){
  background(0);
 
  tempoAtual = millis();
 
  if(tempoAtual-tempoInicial>=1000){
    segundos++;
    if(segundos>=60){segundos=0;}
    tempoInicial=tempoAtual;
    println("Segundos: "+segundos);
    println("Tempo Inicial: "+tempoInicial);
  }

    anguloRes = (segundos*360)/60;
    retornaLinha(50,anguloRes-270);
    //line(0,meioY,width,meioY);
    ellipse(meioX,meioY,100,100);
    line(meioX,meioY,meioX+(x*-1),meioY-(y));
   
}

void retornaLinha(float r, float ang){
 
      x = r * cos(radians(ang));
      y = r * sin(radians(ang));
     
}

Nenhum comentário:

Postar um comentário