Control del tiempo y numeros aleatorios c++

freskito24

Estoy intentando hacer un programa que simule un campo gravitatorio en c++ como éste (aunque el mio funciona todo por teclado y ratón porqué no se cómo hacer interfaces gráficas :D).

http://jarrodoverson.com/static/demos/particleSystem/

El caso es que las estructuras de datos y las funciones que necesito para mover la partícula ya las tengo pero me fallan dos cosas:

1) Cómo controlar las veces que una función puede ser llamada por segundo.

Para sacar emisores uso el click derecho, pero no puedo controlar el tiempo que ha de pasar hasta poder llamar a la función otra vez (puedo detener la ejecución del programa pero no me interesa porque el resto de partículas deja de actualizarse y queda muy "cutre")

El tiempo que tardo en hacer el click es suficiente para que salgan 40 emisores, y me gustaría que sólo pudiera salir 1 por segundo o así.

¿Qué librería usáis vosotros para controlar el tiempo de ejecución?

2) ¿Cómo generar números aleatorios con decimales y un periodo largo?

Haciendo este programa me he dado cuenta de que la función rand() tiene un periodo muy corto y generar aleatorios con decimales es un poco engorroso.

¿Que librería me recomendáis para generar números aleatorios con decimales y periodo largo?

Utilizo el compilador minGW y Windows 7.

Gracias de antemano.

Usuarios habituales

  • freskito24