ฉันจะใช้ graphics.h ใน Ubuntu ได้อย่างไร


19

มีผู้รวบรวมบน Linux ที่รองรับไลgraphics.hบรารี่หรือไม่? ฉันต้องการใช้โปรแกรมกราฟิกดังนั้นโปรดแจ้งให้เราทราบหากมีซอฟต์แวร์ดังกล่าว

ถ้าไม่เช่นนั้นฉันจะใช้มันได้อย่างไร?


สิ่งที่คุณต้องรู้ คอมไพเลอร์ควรจะค้นหาส่วนหัวทั้งหมดหากคุณใส่ .. umm ... hearers ที่ถูกต้องในไฟล์ต้นฉบับของคุณ
Braiam

@Braiam คอมไพเลอร์จะไม่พบไฟล์ส่วนหัวเพียงเพราะคุณรวมไว้ ประการแรกชัดเจนว่าไฟล์จะต้องติดตั้งในระบบของคุณ (โดยทั่วไปแล้วไฟล์ส่วนหัวจะมาพร้อมกับ*-devแพ็คเกจบน Linux distros) - คอมไพเลอร์จะไม่ดาวน์โหลดให้คุณ ประการที่สองไฟล์ส่วนหัวนั้นจะต้องอยู่ในตำแหน่งมาตรฐานบางแห่งที่คอมไพเลอร์จะมองหามัน (เช่น/usr/include) หรืออย่างอื่นต้องระบุตำแหน่งนั้นด้วย-Iบนบรรทัดคำสั่ง ( gccหรือg++) นอกจากนี้คุณมักจะต้องการรันไทม์ libs สำหรับขั้นตอนการเชื่อมโยง (ยกเว้น libs เฉพาะส่วนหัว) ...
Malte Skoruppa

@MalteSkoruppa ดี แต่สิ่งที่คุณต้องใช้หรือไม่ ใส่ไว้ในส่วนหัวของคุณไม่?
Braiam

@Braiam เออ ... คุณกำลังถามอะไร ดูสิคำถามของ OP คือ: ฉันต้องทำอะไรเพื่อให้สามารถใช้graphic.hไลบรารี่บน Ubuntu ได้? มันชัดเจนอย่างสมบูรณ์แบบ คำตอบที่เหมาะสมจะอธิบายแพคเกจที่จำเป็นและวิธีการติดตั้ง (ตามคำตอบที่มีอยู่) และอาจเป็นสิ่งที่พารามิเตอร์ที่จำเป็นในบรรทัดคำสั่งในเวลารวบรวม
Malte Skoruppa

@MalteSkoruppa คุณกำลังอ่านร่างกายหรือไม่
Braiam

คำตอบ:


31

มีหลายตัวเลือกในการทำโปรแกรมกราฟิกโดยใช้ Ubuntu

ใช้ SDL

หากคุณต้องการที่จะใช้graphics.hบนแพลตฟอร์ม Ubuntu libgraphคุณจะต้องรวบรวมและติดตั้ง มันคือการติดตั้ง Turbo c graphics API บน Linux โดยใช้ SDL

มันไม่ได้มีประสิทธิภาพมากและเหมาะสำหรับการใช้งานที่มีคุณภาพการผลิต แต่มันง่ายและใช้งานง่ายเพื่อการเรียนรู้

คุณสามารถดาวน์โหลดได้จากที่นี่

  1. ก่อนอื่นให้เพิ่มที่เก็บUniverse (เนื่องจากแพ็คเกจที่จำเป็นบางอย่างไม่มีอยู่ในที่เก็บหลัก):

    sudo add-apt-repository universe
    sudo apt-get update
  2. การติดตั้งต่อจำเป็นครั้งที่สองและแพ็คเกจเพิ่มเติม:

    • สำหรับรุ่นก่อนหน้า 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เลิกใช้แล้ว สำหรับนี้คุณต้องเพิ่มที่เก็บของในxenialsources.list

      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. ตอนนี้คุณสามารถใช้#include<graphics.h>บน Ubuntu และบรรทัดต่อไปนี้ในโปรแกรมของคุณ:

    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

ผลลัพธ์ของการสาธิต 1

ใช้ OpenGL (ผ่าน GLUT)

แม้ว่าโดยทั่วไปแล้ว OpenGL จะถูกสร้างขึ้นสำหรับการเขียนโปรแกรมสามมิติ แต่การวาดรูปร่าง 2D นั้นให้เค้าร่างพื้นฐานและแนะนำเกี่ยวกับ OpenGL และให้แนวคิดเกี่ยวกับวิธีการเริ่มการวาดวัตถุใน OpenGL

  • sudo apt-get install freeglut3-devในการติดตั้งมากเกินไปเปิดสถานีและประเภท
  • นี่คือโปรแกรมกราฟิกอย่างง่ายโดยใช้ 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;
  }
  • รวบรวมโดยใช้

    gcc demo.c -o demo -lglut -lGL

  • เรียกใช้โดยใช้

    ./การสาธิต

ผลลัพธ์ของการสาธิต 2


1
ฉันใช้ SDL แต่ฉันทำทุกอย่างตามที่กล่าวไว้ใน intall libgraph ด้วย แต่หลังจากโปรแกรมรันมันจะหยุดและจบลงทันทีพร้อมข้อผิดพลาด [xcb] หมายเลขลำดับที่ไม่รู้จักขณะประมวลผลคิว
Luzan Baral

อูบุนตูรุ่นใดที่คุณใช้อยู่
g_p

ฉันใช้อูบุนตู 14.04
Luzan Baral

@ LuzanBaral ดูเหมือนว่ามีปัญหากับ GTK แต่คุณยังสามารถเรียกใช้โปรแกรมได้
g_p

1
สำหรับข้อผิดพลาดที่เกิดขึ้นขณะติดตั้ง libgraph โดยใช้ SDL ดูaskubuntu.com/a/995265/719469และaskubuntu.com/a/717262/719469 (จะช่วยประหยัดเวลาของคุณได้มากโดยพูดถึงประสบการณ์ส่วนตัว: P)
Kewal Shah

2

ถ้าคุณต้องการใช้ graphics.h ใน Ubuntu หรือลินุกซ์ distro อื่น ๆ ฉันก็ชอบ libxbgi มันสามารถทำเกือบทุกสิ่งที่คุณคาดหวังจาก graphics.h สำหรับ windows คุณสามารถดาวน์โหลดได้จากที่นี่: http://libxbgi.sourceforge.net/

มิฉะนั้นถ้าคุณต้องการทำกราฟิกระดับไฮเอนด์คุณก็จะมี SDL (ซึ่งส่วนใหญ่ใช้สำหรับการเขียนโปรแกรมวิดีโอเกม) และ OpenGL (สำหรับกราฟิก 3D) คุณยังสามารถใช้ส่วนผสมของทั้งสอง ตัวอย่างหนึ่งคือ briquolo ของเกม (การสะกดคำอาจผิด)

การเขียนโปรแกรมมีความสุขกราฟิก !!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.