Q3DScatter. einzelne Punkte einfärben

Alles rund um die Programmierung mit Qt
Antworten
T_91
Beiträge: 1
Registriert: 2. Juni 2017 09:30

Q3DScatter. einzelne Punkte einfärben

Beitrag von T_91 »

Hallo zusamme,

ich verwende einen Q3DScatter um eine mit einer Kamera aufgenommene Punktewolke darzustellen, was bereits gut funktioniert. Hierbei möchte ich einzelne Punkte (z.B. den Mittelpunkt) mit einer abweichenden Farbe markieren.
Hat hier vielleicht jemand einen Ansatz für mich?
Die Methode, welche die Punkte aktuell ausgibt sieht wie folgt aus:

Code: Alles auswählen

void scattermodifier::addData()
{
    m_graph->axisX()->setTitle("X");
    m_graph->axisY()->setTitle("Y");
    m_graph->axisZ()->setTitle("Z");

     //initialize raw data x values
     managed_shared_memory shd_mem_cl_raw_x{open_only,"Data_raw_x"};
     Vector_raw * vector_raw_x = shd_mem_cl_raw_x.find<Vector_raw>("Vector_raw_x").first;
      Vector_raw::iterator iter_x = vector_raw_x->begin();

      //initialize raw data y values
     managed_shared_memory shd_mem_cl_raw_y{open_only,"Data_raw_y"};
     Vector_raw * vector_raw_y = shd_mem_cl_raw_y.find<Vector_raw>("Vector_raw_y").first;
     Vector_raw::iterator iter_y = vector_raw_y->begin();


     //initialize raw data z values
     managed_shared_memory shd_mem_cl_raw_z{open_only,"Data_raw_z"};
     Vector_raw * vector_raw_z = shd_mem_cl_raw_z.find<Vector_raw>("Vector_raw_z").first;
     Vector_raw::iterator iter_z = vector_raw_z->begin();


    QScatterDataArray * dataArray = new QScatterDataArray;
    dataArray->resize(vector_raw_x->size());
    QScatterDataItem * ptrToDataArray = &dataArray->first();

    for (int i = 0; i < vector_raw_x->size(); i++){

        ptrToDataArray->setPosition(QVector3D(
                                        (double)(iter_x[i]),
                                        (double)(iter_y[i]),
                                        (double)(iter_z[i])));
        ptrToDataArray++;

    }

    m_graph->seriesList().at(0)->dataProxy()->resetArray(dataArray);


Ich wäre sehr dankbar für jeden Hinweis.

Beste Grüße,

T_91
Antworten