C++ Q3DScatter-->;如何向点云添加具有不同颜色的点
我在Qt中编写了一个程序,它使用Q3DScatter可视化处理过的点云(3D点)。 现在,我想添加具有不同颜色的计算关键点。 可能吗? 有男孩有过这样的经历吗? 下面您可以看到代码的一部分,其中点云被添加到数据数组中C++ Q3DScatter-->;如何向点云添加具有不同颜色的点,c++,qt,C++,Qt,我在Qt中编写了一个程序,它使用Q3DScatter可视化处理过的点云(3D点)。 现在,我想添加具有不同颜色的计算关键点。 可能吗? 有男孩有过这样的经历吗? 下面您可以看到代码的一部分,其中点云被添加到数据数组中 QScatterDataArray * dataArray = new QScatterDataArray; dataArray->resize(vector_seg_x->size()); QScatterDataItem * ptrToDataArray = &am
QScatterDataArray * dataArray = new QScatterDataArray;
dataArray->resize(vector_seg_x->size());
QScatterDataItem * ptrToDataArray = &dataArray->first();
for(int i = 0; i < vector_seg_x->size();i++){
ptrToDataArray->setPosition(QVector3D(
(double)(iter_seg_x[i]),
(double)(iter_seg_y[i]),
(double)(iter_seg_z[i])));
ptrToDataArray++;
}
m_graph_seg->seriesList().at(0)->dataProxy()->resetArray(dataArray);
QScatterDataArray*dataArray=新的QScatterDataArray;
dataArray->调整大小(vector_seg_x->size());
QScatterDataItem*ptrToDataArray=&dataArray->first();
对于(int i=0;isize();i++){
ptrToDataArray->setPosition(QVector3D(
(国际热核聚变实验堆[i]),
(双)(国际热核聚变实验堆[i]),
(国际热核聚变实验堆[i]);
ptrToDataArray++;
}
m_graph_seg->seriesList().at(0)->dataProxy()->resetArray(dataArray);
您只能为整个点列表设置颜色/渐变:
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
scatter.addSeries(new QScatter3DSeries);
scatter.addSeries(new QScatter3DSeries);
{
QScatterDataArray *data = new QScatterDataArray;
*data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
scatter.seriesList().at(0)->dataProxy()->resetArray(data);
QLinearGradient linearGrad(QPointF(100, 100), QPointF(200, 200));
linearGrad.setColorAt(0, Qt::blue);
linearGrad.setColorAt(1, Qt::red);
scatter.seriesList().at(0)->setBaseGradient(linearGrad);
scatter.seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyle::ColorStyleObjectGradient);
}
{
QScatterDataArray *data = new QScatterDataArray;
*data << QVector3D(0.f, 0.f, 0.f);
scatter.seriesList().at(1)->dataProxy()->resetArray(data);
scatter.seriesList().at(1)->setBaseColor(Qt::green);
}
scatter.show();
q3d散射;
scatter.setFlags(scatter.flags()^Qt::FramelessWindowHint);
District.addSeries(新的QScatter3DSeries);
District.addSeries(新的QScatter3DSeries);
{
QScatterDataArray*数据=新的QScatterDataArray;
*数据梯度(线性梯度);
scatter.seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyle::ColorStyleObjectGradient);
}
{
QScatterDataArray*数据=新的QScatterDataArray;
*data dataProxy()->resetArray(数据);
scatter.seriesList().at(1)->setBaseColor(Qt::green);
}
show();