Linux使用graphics.h图形库绘图

⌚Time: 2022-07-11 22:08:02

👨‍💻Author: Jack Ge

graphics.h是上古时代C语言程序开发工具Turbo C的图形库,主要在Dos环境下使用。在现代图形库的发展下逐渐被淘汰。graphics.h具有像素函数、线型函数、多边形函数、曲线函数、填充函数、图像函数等函数类型,简单和易用,学习成本低,简单的做出任何2d图像。

对于linux,需要手动编译库来使用

linux使用graphics库的方法:

首先下载libgraph

libgraph源码下载地址:http://download.savannah.gnu.org/releases/libgraph/

解压,进入源码目录


tar -xzvf libgraph-1.0.2.tar.gz 

cd libgraph-1.0.2/

安装依赖项


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

编译安装


./configure

make

sudo make install

之后在/usr/local/include/目录和/usr/local/lib/目录下安装了graphics.h相关的头文件以及libgraph库。使用pkg-config命令能够查看他们的编译链接参数


pkg-config --cflags --libs libgraph

-I/usr/local/include -L/usr/local/lib -lgraph

编辑一个测试程序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);//延迟5000ms

   closegraph();//关闭图形结束程序

   return 0;

}

编译运行,编译时加-lgraph参数,链接到libgraph库


gcc demo.c -lgraph

./a.out

编译器版本:


g++ -v

Using built-in specs.

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 4.7.2 (Debian 4.7.2-5) 


操作系统:


lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description:    Debian GNU/Linux 7.0 (wheezy)

Release:    7.0

Codename:   wheezy