2011-05-09 17 views
7

Para aquellos de ustedes que no recuerda exactamente lo que el viejo ventanas Starfield salvapantallas parecía, aquí está un vídeo de YouTube: http://www.youtube.com/watch?v=r5AoFiVs2MEStarfield Screensaver Ecuaciones

En este momento, puedo generar partículas al azar ("estrellas") en el interior de un cierto radio Lo que me cuesta trabajo es descubrir la mejor forma de lograr lo que se ve afectado en el video antes mencionado.

Pregunta: Dado que tengo las coordenadas (vectores) para mis partículas generadas al azar. ¿Cuál es la mejor forma y/o ecuación para darles una dirección (vector) para que se muevan a través de la pantalla de una manera que se asemeja mucho a la que se ve en el protector de pantalla anterior?

¡Gracias!

Respuesta

3

Parece que se alejan del centro. ¿Podría intentar calcular el vector desde el punto central de la pantalla a la posición de la partícula generada? Luego usa la misma dirección para mover la partícula y acelerar la partícula hasta que esté fuera de la pantalla.

+0

Esta respuesta junto con la que está debajo directamente por eykanal era exactamente lo que estaba buscando. Resulta que estaba llegando muy, muy complicado. –

4

Un algoritmo básico para que pueda trabajar con:

  1. Generar estrellas por la ubicación aleatoria, con una distribución gaussiana 3-D (en el centro de la pantalla lo más probable, menos probable a medida que avanza más lejos de la pantalla) . Tenga en cuenta que el vector de movimiento de la estrella está determinado por este punto de partida ... el movimiento se desplazará efectivamente a lo largo de la línea formada por el punto de origen y la ubicación de inicio, hacia afuera.

  2. Asigne a cada estrella recién generada una distancia. Tenga en cuenta que la distancia es independiente de la ubicación de inicio.

  3. Mueva la estrella en línea recta a una velocidad que aumenta exponencialmente mientras disminuye simultáneamente su distancia. Tendrá que modificar estos parámetros usted mismo.

  4. La estrella debe desaparecer cuando pasa el límite de la pantalla, independientemente de la velocidad.

+0

Gracias, esto ayudó a conceptualizarlo un poco mejor para mí. –