¿Cómo uso graphics.h en Ubuntu?


19

¿Hay algún compilador basado en Linux que admita la graphics.hbiblioteca? Quiero implementar programas gráficos, así que por favor, háganme saber si existe algún software de este tipo.

Si no, ¿cómo puedo usarlo?


¿Qué es exactamente lo que necesitas saber? Se supone que los compiladores encontrarán todos los encabezados si pones los oyentes correctos ... umm ... en tu archivo fuente.
Braiam

@Braiam El compilador no encontrará mágicamente un archivo de encabezado solo porque lo incluye. En primer lugar, claramente ese archivo debe instalarse en su sistema (generalmente los archivos de encabezado vienen con *-devpaquetes en distribuciones de Linux): el compilador no lo descargará por usted. En segundo lugar, ese archivo de encabezado debe estar en alguna ubicación estándar donde un compilador lo buscará (como /usr/include), o bien esa ubicación debe especificarse -Ien la línea de comando (para gcco g++). Además, generalmente necesita las bibliotecas de tiempo de ejecución para la etapa de vinculación (excepto las bibliotecas de solo encabezado) ...
Malte Skoruppa

@MalteSkoruppa bien, pero ¿qué necesitas para usarlo? Ponlo en tus encabezados, ¿no?
Braiam

@Braiam Err ... ¿qué preguntas? Mire, la pregunta del OP es solo esto: ¿qué necesito hacer para poder usar la graphic.hbiblioteca en Ubuntu? Está perfectamente claro. Una respuesta adecuada explicará qué paquetes se necesitan y cómo instalarlos (como lo hace la respuesta existente), y posiblemente qué parámetros se necesitan en la línea de comandos en el momento de la compilación.
Malte Skoruppa

@MalteSkoruppa, ¿estás leyendo el cuerpo?
Braiam

Respuestas:


31

Hay varias opciones disponibles para hacer programación de gráficos usando Ubuntu.

Usando SDL

Si desea usar graphics.hen la plataforma Ubuntu, necesita compilar e instalar libgraph. Es la implementación de la API de gráficos turbo c en Linux usando SDL.

No es muy potente y adecuado para aplicaciones de calidad de producción, pero es simple y fácil de usar con fines de aprendizaje.

Puedes descargarlo desde aquí .

  1. Primero agregue el repositorio de Universe (ya que algunos paquetes requeridos no están disponibles en el repositorio principal):

    sudo add-apt-repository universe
    sudo apt-get update
  2. Segunda instalación build-essential y algunos paquetes adicionales:

    • Para versiones anteriores a 18.04:

      sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-1.8 \
      guile-1.8-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
      libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
      libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
      libslang2-dev libasound2 libasound2-dev build-essential
    • Para 18.04 : desde Ubuntu 18.04 guile-2.0funciona y libesd0-devestá en desuso. Para esto necesitas agregar repositorios de xenialin sources.list.

      sudo nano /etc/apt/sources.list

      Agregue estas líneas:

      deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
      deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

      Ejecutar sudo apt-get update. Luego instale paquetes usando:

      sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-2.0 \
      guile-2.0-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
      libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
      libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
      libslang2-dev libasound2 libasound2-dev
  3. Ahora extraiga el libgraph-1.0.2.tar.gzarchivo descargado .

  4. Vaya a la carpeta extraída y ejecute el siguiente comando:

    ./configure
    make
    sudo make install
    sudo cp /usr/local/lib/libgraph.* /usr/lib
  5. Ahora puede usar #include<graphics.h>en Ubuntu y la siguiente línea en su programa:

    int gd=DETECT,gm; 
    initgraph(&gd,&gm,NULL);

Aquí hay un programa de muestra que usa graphics.h:

/*  demo.c */
#include <graphics.h>

int main()
{
   int gd = DETECT,gm,left=100,top=100,right=200,bottom=200,x= 300,y=150,radius=50;
   initgraph(&gd,&gm,NULL);
   rectangle(left, top, right, bottom);
   circle(x, y, radius);
   bar(left + 300, top, right + 300, bottom);
   line(left - 10, top + 150, left + 410, top + 150);
   ellipse(x, y + 200, 0, 360, 100, 50);
   outtextxy(left + 100, top + 325, "C Graphics Program");

   delay(5000);
   closegraph();
   return 0;
}
  • Para compilarlo use

    gcc demo.c -o demo -lgraph
  • Para ejecutar escriba

    ./demo

Salida de Demo 1

Usando OpenGL (a través de GLUT)

Aunque OpenGL está hecho básicamente para programación 3D, dibujar formas 2D proporciona el esquema básico y la introducción a OpenGL y da la idea de cómo comenzar a dibujar objetos en OpenGL.

  • Para instalar GLUT, abra la terminal y escriba sudo apt-get install freeglut3-dev.
  • Aquí hay un programa gráfico simple usando GLUT
/*  demo.c */
#include <GL/gl.h>
#include <GL/glut.h>
#include <GL/glu.h>

void setup() {   glClearColor(1.0f, 1.0f, 1.0f, 1.0f); }

void display()
   {
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      glColor3f(0.0f, 0.0f, 0.0f);
      glRectf(-0.75f,0.75f, 0.75f, -0.75f);
      glutSwapBuffers();
   }

int main(int argc, char *argv[])
  {
     glutInit(&argc, argv);
     glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
     glutInitWindowSize(800,600);
     glutCreateWindow("Hello World");

     setup();
     glutDisplayFunc(display);
     glutMainLoop();
     return 0;
  }
  • Compilarlo usando

    gcc demo.c -o demo -lglut -lGL

  • Ejecútalo usando

    ./manifestación

Salida de Demo 2


1
Estoy usando SDL, pero hice todo lo que dije, también en libgraph, pero después de ejecutar el programa, se detiene y termina repentinamente con un error [xcb] Número de secuencia desconocido mientras procesaba la cola
Luzan Baral

¿Qué versión de Ubuntu estás usando?
g_p

estoy usando ubuntu 14.04
Luzan Baral

@LuzanBaral, parece un problema con GTK, pero aún puede ejecutar el programa.
g_p

1
Para errores experimentados al instalar libgraph usando SDL, consulte askubuntu.com/a/995265/719469 y askubuntu.com/a/717262/719469 (le ahorrará mucho tiempo, diciendo esto por experiencia personal: P)
Kewal Shah

2

Si desea usar graphics.h en ubuntu o cualquier otra distribución de Linux, prefiero libxbgi. Puede hacer casi todas las cosas que esperas de graphics.h para Windows. Puede descargarlo desde aquí: http://libxbgi.sourceforge.net/

De lo contrario, si desea hacer algunos gráficos de alta gama, entonces está allí para SDL (que es principalmente para la programación de videojuegos) y OpenGL (que es para gráficos 3D). También puedes usar una mezcla de los dos. Un ejemplo es el juego briquolo (la ortografía puede estar mal).

¡FELIZ PROGRAMACIÓN DE GRÁFICOS!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.