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