-(void)userShow{
vector<CGPoint>::iterator it;
vector<CGPoint>* xp = x.graphPoints;
vector<CGPoint>* yp = y.graphPoints;
xVal = new vector<double>();
yVal = new vector<double>();
xyVal = new vector<double>();
xxVal = new vector<double>();
value = new vector<double>();
c = new vector<double>();
for(it = xp->begin(); it != xp->end(); ++it){
xVal->push_back(it->y);
xxVal->push_back(it->x);
}
for(it = yp->begin(); it != yp->end(); ++it){
xyVal->push_back(it->x);
}
for (int i = 0; i < xVal->size(); i++){
c = xVal[i];
while (xyVal[c] < xxVal[i];){
c++;
if ((c-1)<=xxVal[i]<=c){
double value = xp[c-1] + (xp[c] - yp[c-1])*(xxVal[i] - xyVal[c-1])/(xyVal[c] - xyVal[c-1]);
}
yVal->push_back(value);
}
}
UserGraph->removeAllData();
UserGraph->addDataSet(xVal, yVal, [UIColor redColor], 0, false, true, 2);
UserGraph->updateAll();
}
Выше мой псевдокод того, что я хотел бы, чтобы произошло.У меня все еще есть проблемы с пониманием векторов.Как вы можете видеть выше с yVal = "...", существует проблема с двоичными выражениями с vector<CGPoint>
и vector<double>
.
то, что должен делать этот алгоритм, это взять нарисованную линию на двух графиках x(t)
и y(t)
, затем захватить x(t)
координаты y
и превратить его в новый вектор.После этого во второй раз требуется x(t)
'x
координаты для сравнения с y(t)
x
координатами, чтобы получить y
координаты.Когда x(t)
'sx и y(t)
x
не совпадают, необходимо выполнить алгоритм yVal
=.
Может ли кто-нибудь помочь мне превратить мой псевдокод в рабочий код?Приветствия