› Foros › Off-Topic › Miscelánea
zarkon escribió:El algoritmo original usaba hilos pero este problema lo seguía teniendo.
Ahora utilizo un algoritmo clásico de programación de videojuegos de ir dibujando
una cosa detrás de otra.
for (short i = 0; i < N_Bolas;i++)
{
// Comprobar colision de [i]
}
zarkon escribió:Hola.
Cada bola se mueve un dt.
Lo que muestro no es la posición final del movimiento sino la posición
en el momento de simulación dt.
Por muy pequeño que sea dt siempre hay algún instante en el que la suma de las energías de las bolas
las hagan moverse un espacio mayor que su diámetro.
Raytracing no produce interacciones de movimiento en el trazado de rayos puesto que el rayo rebota y no provoca que el objeto en el que ha rebotado se mueva.
Sólo me queda el sistema de partículas pero no sé hasta que punto será rápido.
¿Existe algún algoritmo sencillo? (No necesito código, tan sólo la idea ó pseudocódigo)
EDITO: He conseguido resolver el problema pero el algoritmo requiere recursividad. Lo planteo de forma lineal:
1.- Se comprueba si el camino de la bola verde intersecta con el camino de la bola roja (true)
2.- Miramos el punto en que colisionan los caminos y retrocedemos la simulación al instante Tcolision1
3.- Antes de mirar si las bolas verde y roja colisionan (que en este punto si lo hacen, como hacía hasta ahora)
compruebo si los caminos actuales colisionan con otros caminos (el camino rojo colisionará con el azul).
4.- Miro el punto en que colisiona el camino rojo y azul y retrocedemos la simulación al instante TColision2
5.- Antes de mirar si las bolas azul y roja colisionan compruebo si los caminos actuales colisionan con otros caminos (false)
6.- Se comprueban si la bola azul y roja colisionan (true), la verde no colisiona con nada.
6- Se calculan las físicas y se colocan las bolas en sus posiciones.
7- Se mueve la simulación al instante de tiempo dt-TColision2
Stylish escribió:zarkon escribió:Hola.
Cada bola se mueve un dt.
Lo que muestro no es la posición final del movimiento sino la posición
en el momento de simulación dt.
Por muy pequeño que sea dt siempre hay algún instante en el que la suma de las energías de las bolas
las hagan moverse un espacio mayor que su diámetro.
Raytracing no produce interacciones de movimiento en el trazado de rayos puesto que el rayo rebota y no provoca que el objeto en el que ha rebotado se mueva.
Sólo me queda el sistema de partículas pero no sé hasta que punto será rápido.
¿Existe algún algoritmo sencillo? (No necesito código, tan sólo la idea ó pseudocódigo)
EDITO: He conseguido resolver el problema pero el algoritmo requiere recursividad. Lo planteo de forma lineal:
1.- Se comprueba si el camino de la bola verde intersecta con el camino de la bola roja (true)
2.- Miramos el punto en que colisionan los caminos y retrocedemos la simulación al instante Tcolision1
3.- Antes de mirar si las bolas verde y roja colisionan (que en este punto si lo hacen, como hacía hasta ahora)
compruebo si los caminos actuales colisionan con otros caminos (el camino rojo colisionará con el azul).
4.- Miro el punto en que colisiona el camino rojo y azul y retrocedemos la simulación al instante TColision2
5.- Antes de mirar si las bolas azul y roja colisionan compruebo si los caminos actuales colisionan con otros caminos (false)
6.- Se comprueban si la bola azul y roja colisionan (true), la verde no colisiona con nada.
6- Se calculan las físicas y se colocan las bolas en sus posiciones.
7- Se mueve la simulación al instante de tiempo dt-TColision2
No sabes cuanto te estas complicando la vida.
Sabio escribió:Desarchivo y lo muevo a su foro correspondiente
Ogunsoto escribió:Sabio escribió:Desarchivo y lo muevo a su foro correspondiente
Se llegó a solucionar?