Atividade 5
- Marcos André
- 17 de abr. de 2016
- 2 min de leitura

'Mantendo o tempo real, alterar o simulador para operar a 60
fps, tornando a animação mais precisa e suave - justificar através
do uso de mostraMundo()'
int tAtual = 0;
int vAtual = 50;
/*10 px/s ou 10m/s adimitindo-se que temos 1px=1m.Logo, teremos 60 quadros por segundo resultando 1px/60F*/
float dAtual; /*Aqui criei uma variável int que possa representar o tempo correto a ser mostrado no console*/
int realTime; void setup() { size(600,600); background(0);
/*O exigido pela questão, encontra-se aqui,através do uso da função frameRate*/
frameRate(60); }
/*Aqui, a função mostraMundo() que cria o grid na tela com espaçamento de 50 px.*/
void mostraMundo() { for (int i = 0; i < 12; i++) { line(i * 50, 0, i * 50, 600); stroke(255); line(0, i * 50, 600, i * 50); stroke(255); } } void draw() { background(0); mostraMundo(); dAtual = MRU(vAtual, tAtual); ellipse(dAtual, 300, 10, 10); stroke(255); tAtual++;
/* Aqui a solução para mostrar o tempo correto.Como 1 frame é mostrado a cada segundo, através da função frameCount que retorna o número de frames já mostrados desde que o programa foi iniciado, podemos concluir que o resto de sua divisão por zero, nos dará o espaço temporal correto que buscamos, que é, 1 segundo.Ou seja, se 1 segundo já tiver se passado, haverá a incrementação do realTime. */
if(frameCount%60==0){
realTime++;
println("V=",vAtual,"T=",realTime,"D=", MRU(vAtual, tAtual));
}
/*Para que a bolinha não ultrapasse o campo de visão do usuário e ainda continue sendo mostrados os valores no console indefinidamente, criei essa condição de saída do loop draw*/
if(dAtual>600) noLoop(); }
/*Por último a função do Movimento Retilínio Uniforme que recebe dois valores como parâmetros(Velocidade e tempo) e retorna um valor; a distância.*/
float MRU(float v, int t) { float d; v=v/60; d = v * t; return(d); }
Abaixo o resultado final:

Comentários