qt画一个四象限坐标系,可缩放旋转,刻度变化的,坐标轴可移动的

qt画一个四象限坐标系,可缩放旋转,刻度变化的,坐标轴可移动的,看网上都是一个象限的,大家有什么好的办法

基于Monster 组和GPT的调写:
用Qt的图形视图框架(Graphics View Framework)来实现这个需求,该框架提供了很多图形绘制和交互的类和函数。

下面是一些可能有用的类和函数:

  • QGraphicsScene:表示图形场景,可以在场景中添加各种图形元素,比如线段、矩形、文本等。

  • QGraphicsView:表示图形视图,用于显示场景,可以进行缩放、旋转、平移等操作。

  • QGraphicsItem:表示场景中的图形元素,可以是自定义的图形元素。

  • QGraphicsLineItem:表示场景中的直线元素。

  • QGraphicsTextItem:表示场景中的文本元素。

试试这个老代码:

#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsLineItem>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建场景和视图
    QGraphicsScene scene;
    QGraphicsView view(&scene);
    view.setRenderHint(QPainter::Antialiasing);
    view.setDragMode(QGraphicsView::ScrollHandDrag);
    view.setRenderHint(QPainter::SmoothPixmapTransform);

    // 设置坐标系范围
    int xmin = -10;
    int xmax = 10;
    int ymin = -10;
    int ymax = 10;

    // 绘制坐标轴
    QGraphicsLineItem *xAxis = new QGraphicsLineItem(xmin, 0, xmax, 0);
    QGraphicsLineItem *yAxis = new QGraphicsLineItem(0, ymin, 0, ymax);
    scene.addItem(xAxis);
    scene.addItem(yAxis);

    // 绘制坐标轴刻度
    for (int i = xmin + 1; i < xmax; ++i) {
        QGraphicsLineItem *tick = new QGraphicsLineItem(i, -0.1, i, 0.1);
        scene.addItem(tick);
    }

    for (int i = ymin + 1; i < ymax; ++i) {
        QGraphicsLineItem *tick = new QGraphicsLineItem(-0.1, i, 0.1, i);
        scene.addItem(tick);
    }

    // 显示视图
    view.setSceneRect(xmin, ymin, xmax - xmin, ymax - ymin);
    view.show();

    return app.exec();
}


有第三方库,qcustomplot,完全能满足你的需求,以下两个文章供参考:

https://blog.51cto.com/u_15246509/5147239

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^