Tarefa da Aula 04: Simulador de lançamento balístico pt.1 (MRU em tempo real)
Objetivo:
Explicar as alterações necessárias no código para que o simulador possa considerar intervalos menores que um segundo, sendo executado a
60 fps e ainda mantendo o tempo real.
O código do MRU feito em sala descrevia o movimento de uma elipse se deslocando horizontalmente no canvas. Mas o deslocamento era feito com base no frame rate do Processing, ou seja, se o frame rete fosse maior que 1, o tempo de execução da simulação seria dividido por esse número, distorcendo o movimento da elipse.
O código feito em sala é esse:
As alterações necessárias para corrigir o problema são apenas 3:
- Primeiro temos que retirar a função frameRate() do código, para garantir que ele seja executado em tempo real, no ciclo de execução padrão do Processing.
- Em seguida, a variável tAtual, dentro do void Draw(), não pode mais ser somada a si mesma progressivamente, ela deve receber um valor mais baixo, que fará com que a elipse se mova várias vezes por segundo. Como o padrão de execução do Processing é 60 frames por segundo, esse valor deve ser 1.0/60, o pode-se usar o variável interna frameRate.
- E a última alteração é que os valores da função MRU devem ser substituídas por variáveis do tipo float, para que o tAtual seja calculado com o número fracionado.
O código deve ficar dessa forma:
Agora podemos executar o código em tempo real, exibindo valores menores que um segundo em tela:



Comentários
Postar um comentário