Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QT Datavisualization visualize multiple Data sets on Scatter QT Example
Qt 6.11 is out! See what's new in the release blog

QT Datavisualization visualize multiple Data sets on Scatter QT Example

Scheduled Pinned Locked Moved Unsolved General and Desktop
1 Posts 1 Posters 752 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    BadHombre
    wrote on last edited by
    #1

    Hi Guys :)

    I have a problem and i hope that sb can help me.

    i have the scatter example from QT.
    In this scatter i am adding some points to a QScatterDataItem and then adding it to the m_graph (scatter graph)
    now i want to add multiple Graphs to the scatter ...
    so i have done the same thin like in the example only with a second m_graph2 und second data set.

    The Problem is that QT is only printing the last Data Set i am adding... like this i can't for example change the color of the points only for one Data set.

    I hope that sb can help me :)

    ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter)
        : m_graph(scatter),
          m_graph2(scatter),
          m_fontSize(40.0f),
          m_style(QAbstract3DSeries::MeshPoint),
          m_smooth(true),
          m_itemCount(lowerNumberOfItems),
          m_curveDivider(lowerCurveDivider)
    
    {   
        m_graph->activeTheme()->setType(Q3DTheme::ThemeEbony);
        QFont font = m_graph->activeTheme()->font();
        font.setPointSize(m_fontSize);
        m_graph->activeTheme()->setFont(font);
        m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
        m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront);
    
        m_graph2->activeTheme()->setType(Q3DTheme::ThemeEbony);
        QFont font2 = m_graph2->activeTheme()->font();
        font2.setPointSize(m_fontSize);
        m_graph2->activeTheme()->setFont(font);
        m_graph2->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
        m_graph2->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront);
    
        QScatterDataProxy *proxy = new QScatterDataProxy;
        QScatter3DSeries *series = new QScatter3DSeries(proxy);
        series->setItemLabelFormat(QStringLiteral("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel"));
        series->setMeshSmooth(m_smooth);
    
        QScatterDataProxy *proxy2 = new QScatterDataProxy;
        QScatter3DSeries *series2 = new QScatter3DSeries(proxy2);
        series->setItemLabelFormat(QStringLiteral("@xTeeeeitle: @xLaeeeebel @yTieeeeeeetle: @yLeeabel @zTieetle: @zeeLabel"));
        series->setMeshSmooth(m_smooth);
    
    
        m_graph->addSeries(series);
        m_graph2->addSeries(series2);
    
        // addData();
    }
    
    ScatterDataModifier::~ScatterDataModifier()
    {
        delete m_graph;
        delete m_graph2;
    }
    
    void ScatterDataModifier::addData()
    {
        // Configure the axes according to the data
        m_graph->axisX()->setTitle("X [AU]");
        m_graph->axisY()->setTitle("Y [AU]");
        m_graph->axisZ()->setTitle("Z [AU]");
        // Configure the axes according to the data
        m_graph2->axisX()->setTitle("X [AU]");
        m_graph2->axisY()->setTitle("Y [AU]");
        m_graph2->axisZ()->setTitle("Z [AU]");
    
        QScatterDataArray *dataArraySc = new QScatterDataArray;
        dataArraySc->resize(m_itemCount);
        QScatterDataArray *dataArrayObs = new QScatterDataArray;
        dataArrayObs->resize(m_itemCount);
        QScatterDataItem *ptrToDataArraySc = &dataArraySc->first();
        QScatterDataItem *ptrToDataArrayObs = &dataArrayObs->first();
    
         std::tie(TargetPosition,AllStepDates) = ScatterDataModifier::GetPositionsSpice(spacecraft_id);
    
         for(int i =0; i<TargetPosition.size();i++)
         {
         ptrToDataArraySc->setPosition(QVector3D(TargetPosition[i][0],TargetPosition[i][1],TargetPosition[i][2]));
         ptrToDataArraySc++;
         }
    
          std::tie(ObserverPosition,AllStepDates) = ScatterDataModifier::GetPositionsSpice("SUN");
          for(int i =0; i<ObserverPosition.size();i++)
          {
          ptrToDataArrayObs->setPosition(QVector3D(ObserverPosition[i][0],ObserverPosition[i][1],ObserverPosition[i][2]));
          ptrToDataArrayObs++;
          }
    
    
    
        m_graph2->seriesList().at(0)->setMesh(QAbstract3DSeries::MeshCube);
        m_graph2->seriesList().at(0)->dataProxy()->resetArray(dataArrayObs);
        m_graph->seriesList().at(0)->setMesh(QAbstract3DSeries::MeshPoint);
        m_graph->seriesList().at(0)->dataProxy()->resetArray(dataArraySc);
    
    }
    
    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved