# langrange curve interpolation points

Hi there. I’m working on a assignment for evaluating lagrange curves. I have a small error in my lagrange function that I can’t seem to notice. The t value is the number of divisions from a range [0,1] used to draw the curve. The error is creating long straight lines with big values at the last few partitions. I may be confused with the meanings of t, t_i, t_j or its an iteration error, either way I don’t think it would be hard to spot…

heres the formula

heres my function and my main loop in the main source file:

Vec eval_lagrange ( float t, float partitions, std::vector<Vec>& pnts ){

``````Vec *V = new Vec(0,0,0);
float n = (float)pnts.size();
float t_i = 0;
float t_j = 0;
float result = 1;

for(float i = 0; i &lt; n; i++){
result = 1;
for(float j = 0; j &lt; n; j++ ){
if(i != j){
t_i = i*partitions;
t_j = j*partitions;
result *= (t - t_j)/(t_i - t_j);
}
}

V-&gt;x += pnts[i].x*result;
V-&gt;y += pnts[i].y*result;
}

return *V;
``````

}

POLYEDAPP.CPP

float delta = 1.0/10;

std::vector<Vec> curve_points;

for(int i = 0; i <= 10; i++){
float t = (float)i*delta;
// curve_points.push_back(eval_bezier (t, p));
curve_points.push_back(eval_lagrange (t, delta, p));
}

Any ideas?

thanks,

Will