[C con Clase] Sistema de salida simple

Steven Davidson steven en conclase.net
Mar Jul 10 23:30:51 CEST 2007


Hola Joaquín,

El pasado 2007-07-10 20:36:05, Joaquin Ezpeleta escribió:

JE> Buenas gente,
JE>  
JE> Hace un tiempo se me dio por programar una especie de simulador en el cual se peuden definir cuerpos con diferentes atributos y moverlos, etc. En fin, el cuerpo y la estructura del programa ya tomaron forma pero no puede encontrar nua salida gráfica que me guste lo suficiente. Necesito algo simple de utilizar, por el momento no hace falta que sea de mucha calidad con algo precario alcanza, seimpre que sea fácil de implementar. En un momento pensé en hacer una salida gráfica con assembly pero nunca me puse.
JE> El pedido es entonces si alguien conoce algún sistema de salida gráfica bien básico y bien fácil de implementar y me puede explicar como se utiliza. El programa llamaía a esta salida mediante una función Frame(); En esta función,  el programa leería de la memoria la posicion de cada objeto y lo representaría en pantalla.

Me temo que este tema, como muchos otros "avanzados", depende de tu plataforma y compilador que uses. Existen muchas bibliotecas y API's gráficas para todo tipo de proyectos, para varias plataformas, y compatibles con varios compiladores.

Si usas MS-Windows, entonces puedes usar el API de MS-Windows en la cual tenemos acceso a las funciones de la GDI: Interfaz del Dispositivo Gráfico. Puedes consultar nuestro curso del API de MS-Windows. Los capítulos 16 á 29, ambos incluidos, son de particular interés. Puedes ir directamente a: http://winapi.conclase.net/curso/index.php?cap=016

Si tienes un compialdor de Borland para MS-DOS anterior a Builder, puedes usar su propia biblioteca gráfica llamada BGI. Tenemos una referencia de esta biblioteca en nuestra página. El enlace es: http://c.conclase.net/Borland/libreria.php?lib=graphics

Para otras bibliotecas gráficas especializadas, tanto para 2D como para 3D, puedes usar OpenGL, la cual se implementa para varias plataformas. El enlace a su página oficial es: http://opengl.org/  También tenemos oportunidad de usar DirectX para MS-Windows. Sin embargo, no es una biblioteca tan fácil de usar, en comparación con las demás que he presentado ni con muchas más existentes.

Otra biblioteca de interés es Allegro que existe para MS-DOS, MS-Windows, y para Linux. Puedes ir directamente a: http://www.talula.demon.co.uk/allegro/

Por último, existe el API llamada SDL que es muy simple, de ahí su nombre en inglés: Simple DirectMedia Layer. Sirve tanto para gráficos 2D/3D como para audio, periféricos, eventos, vídeos, CDROM, etc.. Puedes ir a su página a: http://www.libsdl.org/index.php

Existen muchas bibliotecas gráficas para distintas plataformas. Según lo que nos cuentas, entiendo que estás manejando figuras geométricas 2D. Por tanto, creo que te conviene empezar por OpenGL, basándome en la lista de bibliotecas que te acabo de dar. Si consultas la documentación de OpenGL, verás que existen muchas funciones, pero para lo que quieres hacer, no vas a usarlas todas, sino exclusivamente las de 2D: colores y figuras geométricas. Si usas GLUT, entonces puedes crear tu aplicación de MS-Windows sin mayores dificultades.

Si ya sabes programar usando el API de MS-Windows, entonces no te será tan difícil pasarte a la parte de la GDI.

Si no te interesan las figuras geométricas y quieres algo tan básico que se acerca a un nivel bajo, entonces sugeriría optar por SDL. Este API es tan sencilla, que no incluye nada más que lo esencial para manipular el vídeo como una superficie o imagen, al igual que colores, y poco más.


Espero que esto te oriente.

Steven


Más información sobre la lista de distribución Cconclase