如何在Ubuntu中使用graphics.h?

有没有基于Linux的编译器支持graphics.h库? 我想实现图形程序,所以如果有这样的软件,请告诉我。

如果没有,那么我该如何使用它?

有几个选项可用于使用Ubuntu进行图形编程。

使用SDL

如果你想在Ubuntu平台上使用graphics.h ,你需要编译和安装libgraph 。 它是使用SDL在Linux上实现turbo c图形API。

它不是很强大,适用于生产质量应用,但它简单易用,用于学习目的。

你可以从这里下载。

  1. 首先添加Universe存储库(因为主存储库中没有一些必需的包):

     sudo add-apt-repository universe sudo apt-get update 
  2. 第二次安装build-essential和一些额外的包:

    • 对于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 
    • 对于18.04 :从Ubuntu 18.04开始, guile-2.0工作和libesd0-dev被弃用。 为此,您需要在sources.list添加xenial存储库。

       sudo nano /etc/apt/sources.list 

      添加以下行:

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

      运行sudo apt-get update 。 然后安装包使用:

       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. 现在解压缩下载的libgraph-1.0.2.tar.gz文件。

  4. 转到解压缩的文件夹并运行以下命令:

     ./configure make sudo make install sudo cp /usr/local/lib/libgraph.* /usr/lib 
  5. 现在,您可以在Ubuntu上使用#include ,并在程序中使用以下行:

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

这是一个使用graphics.h的示例程序:

 /* demo.c */ #include  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; } 
  • 要编译它使用

     gcc demo.c -o demo -lgraph 
  • 要运行类型

     ./demo 

演示输出1

使用OpenGL(通过GLUT)

虽然OpenGL基本上是为3D编程而制作的,但绘制2D形状给出了OpenGL的基本概要和介绍,并给出了如何在OpenGL中开始绘制对象的想法。

  • 要安装GLUT,请打开终端并输入sudo apt-get install freeglut3-dev
  • 这是一个使用GLUT的简单图形程序
 /* demo.c */ #include  #include  #include  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; } 
  • 使用编译它

    gcc demo.c -o demo -lglut -lGL

  • 运行它

    ./demo

演示2的输出

如果你想在ubuntu或任何其他Linux发行版中使用graphics.h,那么我更喜欢libxbgi。 它可以完成几乎所有你期望从windows.h的graphics.h。 你可以从这里下载: http : //libxbgi.sourceforge.net/

否则,如果你想做一些高端图形,那么你就可以使用SDL(主要用于编程video游戏)和OpenGL(用于3D图形)。 您也可以使用两者的混合物。 一个例子是游戏briquolo(拼写可能是错误的)。

快乐的图形编程!!