Bagaimana cara menggunakan graphics.h di Ubuntu?

19

Apakah ada kompiler berbasis Linux yang mendukung graphics.hperpustakaan? Saya ingin menerapkan program grafis, jadi silakan beri tahu saya jika ada perangkat lunak tersebut.

Jika tidak, bagaimana saya bisa menggunakannya?

Atul Singh
sumber
Apa sebenarnya yang perlu Anda ketahui? Kompiler seharusnya menemukan semua header jika Anda memasukkan pendengar yang benar .. umm ... di file sumber Anda.
Braiam
@Braiam Kompiler tidak akan secara ajaib menemukan file header hanya karena Anda memasukkannya. Pertama, jelas bahwa file perlu diinstal pada sistem Anda (biasanya file header datang dengan *-devpaket pada distro Linux) - kompiler tidak akan mengunduhnya untuk Anda. Kedua, file header itu harus berada di beberapa lokasi standar di mana kompiler akan mencarinya (seperti /usr/include), atau lokasi itu harus ditentukan dengan -Ipada baris perintah (untuk gccatau g++). Selain itu, Anda biasanya memerlukan lib runtime untuk tahap penautan (kecuali
lib
@Malte Scoreuppa dengan baik, tetapi apa yang Anda butuhkan untuk menggunakannya? Taruh di header Anda, bukan?
Braiam
@Braiam Err ... apa yang kamu minta? Lihat, pertanyaan OP hanyalah ini: apa yang harus saya lakukan agar dapat menggunakan graphic.hperpustakaan di Ubuntu? Jelas sekali. Jawaban yang tepat akan menjelaskan paket apa yang dibutuhkan dan bagaimana cara menginstalnya (seperti jawaban yang ada), dan mungkin parameter apa yang dibutuhkan pada baris perintah pada waktu kompilasi.
Malte Skoruppa
@Malte Scoreuppa apakah Anda membaca tubuh?
Braiam

Jawaban:

31

Ada beberapa opsi yang tersedia untuk melakukan pemrograman grafik menggunakan Ubuntu.

Menggunakan SDL

Jika Anda ingin menggunakan graphics.hplatform Ubuntu Anda perlu mengkompilasi dan menginstal libgraph. Ini adalah implementasi API grafis turbo di Linux menggunakan SDL.

Ini tidak sangat kuat dan cocok untuk aplikasi kualitas produksi, tetapi sederhana dan mudah digunakan untuk tujuan pembelajaran.

Anda dapat mengunduhnya dari sini .

  1. Pertama-tama tambahkan repositori Universe (karena beberapa paket yang diperlukan tidak tersedia di repositori utama):

    sudo add-apt-repository universe
    sudo apt-get update
  2. Instalasi kedua esensial-esensial dan beberapa paket tambahan:

    • Untuk versi sebelum 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
    • Untuk 18,04 : Dari Ubuntu 18,04 guile-2.0berfungsi dan libesd0-devsudah usang. Untuk ini, Anda perlu menambahkan repositori xenialdi sources.list.

      sudo nano /etc/apt/sources.list

      Tambahkan baris ini:

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

      Lari sudo apt-get update. Kemudian instal paket menggunakan:

      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. Sekarang ekstrak libgraph-1.0.2.tar.gzfile yang diunduh .

  4. Buka folder yang diekstrak dan jalankan perintah berikut:

    ./configure
    make
    sudo make install
    sudo cp /usr/local/lib/libgraph.* /usr/lib
  5. Sekarang Anda dapat menggunakan #include<graphics.h>Ubuntu dan baris berikut di program Anda:

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

Berikut adalah contoh program menggunakan 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;
}
  • Untuk mengkompilasinya gunakan

    gcc demo.c -o demo -lgraph
  • Untuk menjalankan tipe

    ./demo

Output dari Demo 1

Menggunakan OpenGL (via GLUT)

Meskipun OpenGL pada dasarnya dibuat untuk pemrograman 3D, menggambar bentuk 2D memberikan garis besar dasar dan pengantar untuk OpenGL dan memberikan ide tentang bagaimana memulai menggambar objek dalam OpenGL.

  • Untuk menginstal GLUT, buka terminal dan ketik sudo apt-get install freeglut3-dev.
  • Berikut ini adalah program grafis sederhana menggunakan 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;
  }
  • Kompilasi menggunakan

    gcc demo.c -o demo -lglut -lGL

  • Jalankan menggunakan

    ./demo

Output dari Demo 2

g_p
sumber
1
Saya menggunakan SDL, tetapi saya melakukan semua hal seperti yang dikatakan, intall libgraph juga, tetapi setelah program berjalan, tiba-tiba berhenti dan berakhir dengan kesalahan [xcb] Nomor urut tidak diketahui saat memproses antrian
Luzan Baral
Ubuntu versi apa yang Anda gunakan?
g_p
saya menggunakan ubuntu 14.04
Luzan Baral
@LuzanBaral, Sepertinya masalah dengan GTK, tetapi Anda masih bisa menjalankan program.
g_p
1
Untuk kesalahan yang dialami saat menginstal libgraph menggunakan SDL, rujuk askubuntu.com/a/995265/719469 dan askubuntu.com/a/717262/719469 (akan menghemat banyak waktu Anda, mengatakan ini berdasarkan pengalaman pribadi: P)
Kewal Shah
2

Jika Anda ingin menggunakan graphics.h di ubuntu atau distro linux lainnya, maka saya lebih suka libxbgi. Ini dapat melakukan hampir semua hal yang Anda harapkan dari graphics.h untuk windows. Anda dapat mengunduhnya dari sini: http://libxbgi.sourceforge.net/

Kalau tidak, jika Anda ingin melakukan beberapa grafis kelas atas maka Anda ada untuk SDL (yang sebagian besar untuk pemrograman video game) dan OpenGL (yang untuk grafis 3D). Anda juga bisa menggunakan campuran keduanya. Salah satu contohnya adalah permainan briquolo (ejaan mungkin salah).

PEMROGRAMAN GRAPHICS SELAMAT !!

Pemrogram
sumber