Hello guys i am trying to write a code which produces a b-spline points in curve
What i want to do is read the control points from a file and then calculate the curves points.
When i manually enter the control points (as in the comment brackets)the code runs but when i try to read them
from a file it crashes.
I also get a warning warning: format '%f' expects argument of type 'float *', but argument 3 has type 'double' [-Wformat]|
||=== Build finished: 0 errors, 1 warnings (0 minutes, 1 seconds) ===|
Here's my code
Can you please check it out because i am getting really frustrated...!!!!
Thank you
What i want to do is read the control points from a file and then calculate the curves points.
When i manually enter the control points (as in the comment brackets)the code runs but when i try to read them
from a file it crashes.
I also get a warning warning: format '%f' expects argument of type 'float *', but argument 3 has type 'double' [-Wformat]|
||=== Build finished: 0 errors, 1 warnings (0 minutes, 1 seconds) ===|
Here's my code
int main()
{
int i;
int npts,k;
int p1;
float b[31]; /* allows for up to 10 control vertices */
float h[11]; /* allows for up to 10 control vertices */
float p[103]; /* allows for up to 100 points on curve */
FILE *splineinput;
splineinput = fopen("splineinput.txt","r");
npts = 5;
k = 5; /* third order, change for other orders */
p1 = 35; /* eleven points on curve */
for(i=0;!feof(splineinput);i++)
{
fscanf(splineinput,"%f",b[i]);
}
for (i=1; i <= npts; i++){
h[i] = 1.0;
}
h[3] = 1;
for (i = 1; i <= 3*p1; i++){
p[i] = 0.;
}
/*b[1]=0;
b[2]=0;
b[3]=1;
b[4]=1;
b[5]=2;
b[6]=1;
b[7]=2.5;
b[8]=0;
b[9]=1;
b[10]=4;
b[11]=2;
b[12]=1;
b[13]=5;
b[14]=0;
b[15]=1;*/
rbspline(npts,k,p1,b,h,p);
printf("\nPolygon points\n");
for (i = 1; i <= 3*npts; i=i+3){
printf(" %f %f \n",b[i],b[i+1]);
}
printf("\nHomogeneous weighting vector is \n");
for (i = 1; i <= npts; i++){
printf(" %f ", h[i]);
}
printf("\n");
printf("\nCurve points\n");
for (i = 1; i <= 3*p1; i=i+3){
printf(" %f %f \n",p[i],p[i+1]);
}
fclose(splineinput);
return 0;
}
Can you please check it out because i am getting really frustrated...!!!!
Thank you