如何在Ubuntu中使用graphics.h?
有没有基于Linux的编译器支持graphics.h
库? 我想实现图形程序,所以如果有这样的软件,请告诉我。
如果没有,那么我该如何使用它?
有几个选项可用于使用Ubuntu进行图形编程。
使用SDL
如果你想在Ubuntu平台上使用graphics.h
,你需要编译和安装libgraph
。 它是使用SDL在Linux上实现turbo c图形API。
它不是很强大,适用于生产质量应用,但它简单易用,用于学习目的。
你可以从这里下载。
-
首先添加Universe存储库(因为主存储库中没有一些必需的包):
sudo add-apt-repository universe sudo apt-get update
-
第二次安装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
-
-
现在解压缩下载的
libgraph-1.0.2.tar.gz
文件。 -
转到解压缩的文件夹并运行以下命令:
./configure make sudo make install sudo cp /usr/local/lib/libgraph.* /usr/lib
-
现在,您可以在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
使用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
如果你想在ubuntu或任何其他Linux发行版中使用graphics.h,那么我更喜欢libxbgi。 它可以完成几乎所有你期望从windows.h的graphics.h。 你可以从这里下载: http : //libxbgi.sourceforge.net/
否则,如果你想做一些高端图形,那么你就可以使用SDL(主要用于编程video游戏)和OpenGL(用于3D图形)。 您也可以使用两者的混合物。 一个例子是游戏briquolo(拼写可能是错误的)。
快乐的图形编程!!