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