web-dev-qa-db-fra.com

Comment utiliser graphics.h dans Ubuntu?

Existe-t-il un compilateur Linux prenant en charge la bibliothèque graphics.h? Je souhaite implémenter des programmes graphiques, merci de bien vouloir me faire savoir s'il existe un tel logiciel.

Si non, comment puis-je l'utiliser?

18
Atul Singh

Il y a plusieurs options disponibles pour faire de la programmation graphique avec Ubuntu.

Utiliser SDL

Si vous souhaitez utiliser graphics.h sur la plate-forme Ubuntu, vous devez compiler et installer libgraph. C’est l’implémentation de l’API graphique turbo c sous Linux à l’aide de SDL.

Il n’est pas très puissant et ne convient pas à une application de qualité, mais il est simple et facile à utiliser à des fins d’apprentissage.

Vous pouvez le télécharger à partir de ici .

  1. Ajoutez d’abord le référentiel niverse (car certains packages requis ne sont pas disponibles dans le référentiel principal):

    Sudo add-apt-repository universe
    Sudo apt-get update
    
  2. Deuxième installation build-essential et quelques paquets supplémentaires:

    • Pour les versions antérieures à 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
      
    • Pour 18.04 : Sous Ubuntu, 18.04 guile-2.0 fonctionne et libesd0-dev est obsolète. Pour cela, vous devez ajouter des référentiels de xenial dans sources.list.

      Sudo nano /etc/apt/sources.list
      

      Ajoutez ces lignes:

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

      Exécutez Sudo apt-get update. Puis installez les paquets en utilisant:

      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. Extrayez maintenant le fichier libgraph-1.0.2.tar.gz téléchargé.

  4. Accédez au dossier extrait et exécutez la commande suivante:

    ./configure
    make
    Sudo make install
    Sudo cp /usr/local/lib/libgraph.* /usr/lib
    
  5. Vous pouvez maintenant utiliser #include<graphics.h> sur Ubuntu et la ligne suivante dans votre programme:

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

Voici un exemple de programme utilisant 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;
}
  • Pour le compiler, utilisez

    gcc demo.c -o demo -lgraph
    
  • Pour exécuter le type

    ./demo
    

Output of Demo 1

Utiliser OpenGL (via GLUT)

Bien qu'OpenGL soit fondamentalement conçu pour la programmation 3D, le dessin de formes 2D fournit le contour de base et une introduction à OpenGL, ainsi que des idées sur la façon de commencer à dessiner des objets dans OpenGL.

  • Pour installer GLUT, ouvrez le terminal et tapez Sudo apt-get install freeglut3-dev.
  • Voici un programme graphique simple utilisant 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;
  }
  • Compilez-le avec

    gcc demo.c -o demo -lglut -lGL

  • Exécuter en utilisant

    ./demo

Output of Demo 2

28
g_p

Si vous voulez utiliser graphics.h dans Ubuntu ou dans une autre distribution linux, je préfère libxbgi. Il peut faire presque tout ce que vous attendez de graphics.h pour Windows. Vous pouvez le télécharger ici: http://libxbgi.sourceforge.net/

Sinon, si vous souhaitez créer des graphiques haut de gamme, vous êtes prêt pour SDL (principalement pour la programmation de jeux vidéo) et OpenGL (pour les graphiques 3D). Vous pouvez également utiliser un mélange des deux. Un exemple est le briquolo de jeu (l'orthographe peut être fausse).

HAPPY GRAPHICS PROGRAMMING !!

2
Gprogrammer