principal nivel superior enviar artículo buscar administrar acerca de ... rdf rss main |
from the dept. SALUDOS reporte
Pues bueno aquí va más o menos de manera súper resumida lo que e estado haciendo últimamente: -En primer lugar termine las pruebas de la clase automaton, aunque estoy pensando cambiarle el nombre, y que quede establecida como graph o algo así, de esta manera cuando quieras crear el autómata celular simplemente llamas a la librería que crea toda la grafica para ti y de esta manera tienes listo el modelo y solo debes de iterarlo, en un futuro me gustaría ampliar la clase o generalizar el modelo al meter mas clases relacionadas para tener un sinfín de graficas diferentes, algunas de las cuales darán lugar a los agentes y otras de ellas darán lugar a la red de interacción entre estados del autómata y agentes y claro entre ellos. Esto implicaría que la clase autoamton se convertiría en la clase dígrafo algo, donde algo diría mas sobre su estructura o mapeo sobre el espacio, aunque por ahora todo esto se encuentra en estado de ensoñación, y lo único claro es que la clase automaton como esta hecha ya se encuentra probada con cppunit. -Por otro lado e estado estudiando y probando openGL y glut en la parte grafica, todavía me falta aprender a manejar los arreglos de vértices ya que la parte de el rendereo de cada figura geométrica cada ves que se mueve la ventana, o cambia su tamaño o solamente para mantener el estado de animación continua, se calcula en todo momento llamando a un sinnúmero de funciones para cada uno de los vértices de la geometría, toda una talacha de cosas para mantener acorde el despliegue de la escena, lo cual en nuestro caso no es necesario ya que al menos en el caso de dos dimensiones los vértices que componen la geometría de la gradilla y el lugar de la cámara que determina el ángulo de despliegue de la escena, no cambian en nada, lo único que cambia son los colores de los cuadritos, o en un futuro las imágenes asociadas a ellos o la transparencia del cuadrito, con lo que se están haciendo cálculos de mas, como sea ya pude crear una escena en donde se asocia a un píxel o un cuadrito de píxeles un color, y crear un arreglo de píxeles formando la gradilla, lo cual es la parte básica de lo que queremos, aunque al utilizar los arreglos de puntos (vértices) o píxeles de color evitaríamos llamar muchas veces a muchas funciones que ni al caso. -Además logre llamar desde el código c++ escrito en forma de clase a glut el cual esta escrito en c, teniendo que crear métodos estáticos para cada función dentro de la clase pero terminando todo en un código funcional. Con lo que la clase View a nacido. Pero aquí nos encontramos con el primer problema aunque un problema largamente anunciado, la concurrencia; Para tener desplegada toda la escena de animación de una manera continua, y que la interfase grafica (la ventana o ventanas) presente respuestas interactivas al usuario, como por ejemplo que el botoncito de cerrado de la ventana, efectivamente cierre la ventana cuando se acciona, glut presenta un metodillo, glutMainLoop(), este método crea y mantiene un ciclo de ejecución infinito en el cual se procesan tanto el rendereo de las escenas, con lo que se mantiene la ilusión de animación, como cualquier evento realizado por el usuario, pero al mismo tiempo atasca el programa dentro del ciclo, así que se impone la búsqueda de alguna solución, por un lado se podrá poner que cada iteración del modelo fuera llamada dentro de este ciclo, aunque no queda claro bien como, o la opción recomendada por todos los gurus de programación que es la concurrencia. -Con respecto a la concurrencia, e estado probando la librería ZThreads, la cual es de código abierto, creada por un tal Eric Crahen de IBM, el cual ayudo a escribir a Bruce Eckel el ultimo capitulo de pensando en c++ volumen dos, que justamente es sobre lo básico de la concurrencia, y los respectivos ejemplos se basan en susodicha librería, pero e tenido ciertos problemas con su compilación y por ahora me encuentro en ello, como sea por lo básico que e podido ver, esta librería tiene lo clasico de hilos de ejecución, como semáforos, acoplamiento, prioridad, etc., lo cual resulta parecido a la desarrollada en Java.
Me parece que una ves resuelto lo de la concurrencia estaré muy cerca de tener la parte básica de la vista terminada, con lo que el primer demo interactivo estaría saliendo del horno muy pronto.
¡!!Suerte a todos!!!
P.D. cualquier duda o comentario se agradecerá.
< Adiciones | Mod_securiy >
|
|
|||||||||||
|
"Any system that depends on reliability is unreliable." -- Nogg's Postulate | ||
All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©1999 Butch Landingin. |