Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Изменение линий в Q3DSurface



  • Здравствуйте
    Есть задача нарисовать 3D сплайн
    Решил сделать это с помощью Q3DSurface

    QWidget *wdg = new QWidget;
    float minX = std::numeric_limits<float>::max(),
    minY = std::numeric_limits<float>::max(),
    minZ = std::numeric_limits<float>::max(),
    maxX = std::numeric_limits<float>::min(),
    maxY = std::numeric_limits<float>::min(),
    maxZ = std::numeric_limits<float>::min();
    Q3DSurface *graph = new Q3DSurface();
    QWidget *container = QWidget::createWindowContainer(graph);
    QHBoxLayout *hLayout = new QHBoxLayout(wdg);
    hLayout->addWidget(container, 1);
    QSurfaceDataProxy *prox = new QSurfaceDataProxy();
    QSurface3DSeries *series = new QSurface3DSeries(prox);
    QSurfaceDataArray *dataArray = new QSurfaceDataArray;
    int index = 0;
    int size = sqlSize(query);
    dataArray->reserve(size);
    QSurfaceDataRow *newRow = new QSurfaceDataRow(size);
    while (query.next())
    {
    float x = query.value(2).toFloat();
    if (x<minX)
    minX=x;
    if (x>maxX)
    maxX=x;
    float y = query.value(1).toFloat();
    if (y<minY)
    minY=y;
    if (y>maxY)
    maxY=y;
    float z = query.value(0).toFloat();
    if (z<minZ)
    minZ=z;
    if (z>maxZ)
    maxZ=z;
    (*newRow)[index++].setPosition(QVector3D(x, y, z));
    *dataArray << newRow;
    }
    QRect rec = QApplication::desktop()->screenGeometry();
    double height = rec.height();
    double width = rec.width();
    graph->activeTheme()->setType(Q3DTheme::ThemeEbony);
    graph->activeTheme()->setFont(font);
    graph->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftLow);
    graph->axisX()->setRange(minX-100, maxX+100);
    graph->axisY()->setRange(minY-100, maxY+100);
    graph->axisZ()->setRange(minZ-100, maxZ+100);
    wdg->setGeometry(width/4, height/4, width/2, height/2);
    prox->resetArray(dataArray);
    graph->addSeries(series);
    wdg->show();

    Однако линия выходит очень тонкая, никак не могу найти настройки для изменения ее цвета/утолщения
    Фонт меняет только аксисы
    Буду признателен за помощь
    0_1534508543704_1.PNG



  • А что примеры говорят?


Log in to reply