graphics.h
ライブラリをサポートするLinuxベースのコンパイラはありますか?グラフィックプログラムを実装したいので、そのようなソフトウェアがあれば教えてください。
そうでない場合、どのように使用できますか?
Ubuntuを使用してグラフィックプログラミングを行うためのオプションがいくつかあります。
Ubuntuプラットフォームでgraphics.h
を使用する場合は、libgraph
をコンパイルしてインストールする必要があります。これは、SDLを使用したLinuxでのターボcグラフィックスAPIの実装です。
それは非常に強力ではなく、生産品質のアプリケーションには適していませんが、学習目的にはシンプルで使いやすいです。
here からダウンロードできます。
最初に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
次に、ダウンロードしたlibgraph-1.0.2.tar.gz
ファイルを抽出します。
抽出されたフォルダーに移動し、次のコマンドを実行します。
./configure
make
Sudo make install
Sudo cp /usr/local/lib/libgraph.* /usr/lib
これで、Ubuntuで#include<graphics.h>
を使用し、プログラムで次の行を使用できます。
int Gd=DETECT,gm;
initgraph(&Gd,&gm,NULL);
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;
}
コンパイルするには
gcc demo.c -o demo -lgraph
タイプを実行するには
./demo
OpenGLは基本的に3Dプログラミング用に作成されていますが、2Dシェイプの描画はOpenGLの基本的な概要と概要を示し、OpenGLでオブジェクトの描画を開始する方法についてのアイデアを提供します。
Sudo apt-get install freeglut3-dev
と入力します。/* 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;
}
を使用してコンパイルする
gcc demo.c -o demo -lglut -lGL
を使用して実行する
。/デモ
Ubuntuまたは他のLinuxディストリビューションでgraphics.hを使用する場合は、libxbgiを使用します。 Windowsのgraphics.hから期待されるほぼすべてのことを実行できます。ここからダウンロードできます: http://libxbgi.sourceforge.net/
それ以外の場合は、いくつかのハイエンドグラフィックスを実行する場合は、SDL(主にビデオゲームのプログラミング用)およびOpenGL(3Dグラフィックス用)を使用します。また、2つの混合物を使用することもできます。 1つの例は、ゲームブリコロ(スペルが間違っている可能性があります)です。
ハッピーグラフィックスプログラミング!!