pointsOfGrid заполняются нормально, не мусором, maxRadius - аналогично. Ошибка возникает при попытке установить QCPCurveData ума не приложу что делать...
В .h объявлены
QVector<QCPCurve *> rounds;
QMap<int, QVector<QCPCurveData>> pointsOfGrid;
QSet<int> allRadius;
В .cpp
//значение radius снимается со спинбокса
if (!allRadius.contains (radius)) { allRadius.insert (radius); }
auto maxRadius = allRadius.end() - 1;
for (int j = 0; j < *maxRadius; j++) {
if (!pointsOfGrid.contains(j)){
QVector <QCPCurveData> temp(POINTS_FOR_GRID);
for (int i = 0; i < POINTS_FOR_GRID; i++) {
double theta = (i / 180.0) * M_PI;
temp[i]=QCPCurveData (i, j * qCos (1 * theta), j * qSin (1 * theta));
}
pointsOfGrid.insert (j, temp);
}
}
while (rounds.size()>*maxRadius){
rounds.removeLast();
}
rounds.squeeze();
for (int i = 0; i < *maxRadius; i++){
if(rounds.isEmpty() || !rounds[i]){
rounds[i] = new QCPCurve (widget->xAxis, widget->yAxis);
rounds[i]->data()->set(pointsOfGrid[i]);//в этой строчке вылетает
//с QVector<T>::operator[]: "index out of range"
rounds[i]->setPen(penForGrid);
}
}
Должно рисовать окружности в полярных координатах, дополнительно использую библиотеку QCustomPlot
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости