1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include "code.h"
#include "gui.h"
#include "point.h"
#include <QtDataVisualization>
#include <QVector3D>
#include <Q3DScatter>
using namespace QtDataVisualization ;
Code::Code(Q3DScatter *scatter) : m_graph(scatter){
}
std::vector<point> Code::readingData(std::string inputFileName ) {
std::vector<point> inputData;
std::string line, token;
point newPoint;
// std::string inputFileName = entry1->text().toStdString();
std::ifstream file;
file.open(inputFileName.c_str(), std::ifstream::in);
if (file.is_open())
{
while (getline(file, line))
{
std::istringstream ss(line);
getline(ss, token, ',');
newPoint.x = stod(token);
getline(ss, token, ',');
newPoint.y = stod(token);
getline(ss, token, ',');
newPoint.z = stod(token);
inputData.push_back(newPoint);
//std::cout << inputData.at(2).x << endl;
}
}
else
std::cout << "Unable to open file";
file.close();
return inputData ;
}
void Code::addData(){
m_graph->axisX()->setTitle("X");
m_graph->axisY()->setTitle("Y");
m_graph->axisZ()->setTitle("Z");
//QScatterDataProxy *proxy = new QScatterDataProxy;
QtDataVisualization::QScatter3DSeries *series = new QtDataVisualization::QScatter3DSeries(m_graph);
std::vector<point> inputData = Code::readingData("test.txt");
QtDataVisualization::QScatterDataArray data;
for (int i=0; i<inputData.size();i++)
{
data << QVector3D(inputData.at(i).x , inputData.at(i).y , inputData.at(i).z);
data.push_back(QtDataVisualization::QScatterDataItem(QVector3D(inputData.at(i).x,inputData.at(i).y,inputData.at(i).z)));
};
series->dataProxy()->addItems(data);
m_graph->addSeries(series);
} |
Partager