Me gustaría saber como abordais el siguiente problema.
Tengo 2 objetos que actuan el uno sobre el otro, cuando es requerido, la función correspondiente modifica el estado del que tenga asociado.
El problema es cuando los dos objetos influyen entre sí, por ejemplo 2 ruedas dentadas con movimientos individuales. La función de un objeto llama a la del otro, que a su vez vuelve a llamar al anterior, y así sucesivamente hasta el infinito (en nuestro caso stack overflow).
Yo creo la solución correcta estará en una función común cruzada. Pero se podría complicar si el problema por ejemplo son varias ruedas dentadas.
Si estas implementando un sistema realimentado, tienes(conozco) dos soluciones posibles, la analitica y la de aproximaciones sucesivas.
La analitica te da el resultado exacto y consiste en armar un sistema de ecuaciones/relaciones de donde se resuelva el sistema. Lamentablemente esta requiere de un conocimiento superior del problema y de todas sus puntualiades (en simulaciones fisicas se creaban matrices inmensas para calcular la interación de fuerzas, pero era muy limitado).
La otra solucion es de aproximaciones sucesivas, la cual consiste en mandarse un numero limitado(generalmente por el tiempo) de mensajes retroalimentados. O sea, en vez de mandar el mensaje al elemento se lo pones en una cola de analisis, en la siguiente iteración este tomará el mensaje y lo procesará enviando los correspondientes mensajes de realimentación al sistema. En fisica por ejemplo se suelen hacer unas 10 iteraciones por frame.
Saludos
Vale, probaré con la segunda solución.
Es una simulacion de engranajes?
No, es una jerarquía de objetos conectados en la que no hay padres ni hijos definidos.
...una anarquía??? :shock:
Cita de: "marcode"No, es una jerarquía de objetos conectados en la que no hay padres ni hijos definidos.
...una anarquía??? :shock:
Pues más bien. Yo no veo el problema si lo que quieres es simular sinceramente. (Será q soy corto). Lo que stá claro es q en un sistema de engranajes y desde una posición 0 de situación definida es fácil hallar en el momento T la situacion de cada engranaje.
No es tan sencillo si lo que se aplican a los engranajes son desplazamientos o fuerzas (a cada uno de ellos).
Pero dejando a un lado la física, el problema ahora lo estoy teniendo porque obtengo la posición real de un objeto siguiendo la jerarquía.
Pero cuando la jerarquía no es una cadena de principio a fin el sistema se mete en un bucle y quería saber como se resuelven estas cosas.