-(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
COORDSをつかみ、新しいベクトルにそれを回しました。その後、2回目には、コードを取るためにy(t)
x
のコードと比較すると、のコードがx(t)
のコードを取ります。 x(t)
のxとy(t)
x
が一致しない場合は、yVal
=アルゴリズムを実行する必要があります。
擬似コードを作業コードに変えるのに役立つものはありますか?乾杯
'x.graphPoints'は何を返しますか? – birryree
最初のグラフ上のx(t)の点。 @birryree –
なぜ 'std :: vector'で' new'を使用していますか? 「新しい」を避ける。 – Nawaz