Có một số tùy chọn có sẵn để thực hiện lập trình đồ họa bằng Ubuntu.
Sử dụng SDL
Nếu bạn muốn sử dụng graphics.h
trên nền tảng Ubuntu, bạn cần biên dịch và cài đặt libgraph
. Đó là việc triển khai API đồ họa turbo c trên Linux bằng SDL.
Nó không phải là rất mạnh mẽ và phù hợp cho ứng dụng chất lượng sản xuất, nhưng nó đơn giản và dễ sử dụng cho mục đích học tập.
Bạn có thể tải nó từ đây .
Trước tiên, thêm kho vũ trụ (vì một số gói bắt buộc không có sẵn trong kho chính):
sudo add-apt-repository universe
sudo apt-get update
Cài đặt thứ hai xây dựng cần thiết và một số gói bổ sung:
Đối với các phiên bản trước ngày 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
Cho 18.04 : Từ Ubuntu 18.04 guile-2.0
hoạt động và libesd0-dev
không được dùng nữa. Đối với điều này, bạn cần thêm kho lưu trữ xenial
trong sources.list
.
sudo nano /etc/apt/sources.list
Thêm các dòng sau:
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
Chạy đi sudo apt-get update
. Sau đó cài đặt các gói bằng cách sử dụng:
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
Bây giờ giải nén libgraph-1.0.2.tar.gz
tập tin tải về .
Chuyển đến thư mục giải nén và chạy lệnh sau:
./configure
make
sudo make install
sudo cp /usr/local/lib/libgraph.* /usr/lib
Bây giờ bạn có thể sử dụng #include<graphics.h>
trên Ubuntu và dòng sau trong chương trình của bạn:
int gd=DETECT,gm;
initgraph(&gd,&gm,NULL);
Đây là một chương trình mẫu sử dụng 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;
}
Sử dụng OpenGL (thông qua GLUT)
Mặc dù OpenGL về cơ bản được tạo ra để lập trình 3D, việc vẽ các hình dạng 2D đưa ra phác thảo cơ bản và giới thiệu về OpenGL và đưa ra ý tưởng về cách bắt đầu vẽ các đối tượng trong OpenGL.
- Để cài đặt GLUT, mở terminal và gõ
sudo apt-get install freeglut3-dev
.
- Đây là một chương trình đồ họa đơn giản sử dụng 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;
}