温馨提示×

如何在Ubuntu用C++画图

小樊
40
2026-09-23 16:15:38
栏目: 编程语言

在 Ubuntu 上用 C++ 画图,常见有几种方式,取决于你想画什么(简单图形、窗口界面、还是图像文件)。下面按从简单到专业给你介绍。


一、最推荐入门方式:用 SFML(简单、现代、好用)

1️⃣ 安装 SFML

sudo apt update
sudo apt install libsfml-dev

2️⃣ 示例:画一个圆

#include <SFML/Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(400, 400), "C++ Draw");

    sf::CircleShape circle(100);
    circle.setFillColor(sf::Color::Green);
    circle.setPosition(100, 100);

    while (window.isOpen()) {
        sf::Event e;
        while (window.pollEvent(e))
            if (e.type == sf::Event::Closed)
                window.close();

        window.clear();
        window.draw(circle);
        window.display();
    }
    return 0;
}

3️⃣ 编译运行

g++ main.cpp -lsfml-graphics -lsfml-window -lsfml-system
./a.out

✅ 优点:

  • 适合初学者
  • 可画图形、图片、文字
  • 有窗口、事件处理

二、生成图片文件(不弹窗口):用 OpenCV

适合:保存为 PNG/JPG

安装

sudo apt install libopencv-dev

示例

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat img(400, 400, CV_8UC3, cv::Scalar(255,255,255));
    cv::circle(img, cv::Point(200,200), 100, cv::Scalar(0,255,0), -1);
    cv::imwrite("out.png", img);
}

编译:

g++ main.cpp `pkg-config --cflags --libs opencv4`

三、系统级绘图(X11,偏底层)

适合:理解图形原理

sudo apt install libx11-dev

⚠️ 代码较复杂,不建议新手。


四、数学/数据画图(类似 MATLAB)

  • gnuplot + C++
  • Matplotlib-cpp(Python 风格)

示例(gnuplot):

#include <cstdio>
int main() {
    FILE* g = popen("gnuplot -persist", "w");
    fprintf(g, "plot sin(x)\n");
    pclose(g);
}

五、GUI 程序(按钮+画布)

  • Qt(最强大)
sudo apt install qtbase5-dev

适合做完整桌面软件。


六、如何选择?

需求 推荐
学习 C++ 画图 ✅ SFML
保存图片 OpenCV
数据可视化 gnuplot
桌面软件 Qt
底层学习 X11

如果你愿意,可以告诉我:

  • ✅ 你是初学者还是进阶
  • ✅ 想画什么(圆、图、游戏、数据)
  • ✅ 是否要窗口

我可以直接给你完整可运行示例

0