Заполните QScatterDataArray QVector из координат в таблице - PullRequest
0 голосов
/ 23 мая 2018

Я хотел бы заполнить QScatterDataArray некоторыми QVector3D , которые сами получают свои данные из массива.Я знаю, как сделать это вручную, но я не знаю, как это сделать автоматически.Я думаю, вам придется использовать цикл for, хотя, я не понимаю, как.Я также хочу сказать, что я никогда не использую QT, поэтому ответ может показаться вам очевидным.

Вот код, который я хотел бы изменить:

// "graph" is therefore my graph

QScatter3DSeries *series = new QScatter3DSeries(graph);
QScatterDataArray data;

data << QVector3D(50, 10, 0) << QVector3D(5, 8, 9) << QVector3D(0, 10, 15)
<< QVector3D(30, 50, 02) << QVector3D(15, 83, 7) << QVector3D(04, 20, 45)
<< QVector3D(40, 014, 10) << QVector3D(35, 28, 21) << QVector3D(04, 0, 15)
<< QVector3D(70, 10, 27) << QVector3D(15, 28, 47) << QVector3D(062, 70, 45)
<< QVector3D(50, 10, 0) << QVector3D(5, 8, 17) << QVector3D(031, 20, 35);

series->dataProxy()->addItems(data);
graph->addSeries(series);

Спасибо:)

1 Ответ

0 голосов
/ 23 мая 2018

A QScatterDataArray - это typedef для вектора QScatterDataItems.

QScatterDataItem имеет конструктор , принимающий QVector3D.

Итак, итерируйте таблицу координат, построив QVector3D для каждого и push_back на data.

Один, а не единственный способ сделать это:

QScatterDataArray data;

for ( /* each xyz coordinate in some table */ )
{
    data.push_back(QScatterDataItem(QVector3d(x, y, z)));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...