紧急求助!!
void CParallelLineTestView::parallel(double *xxw,double *yyw,short kk, short n, double w,double *xx, double *yy,double *xx1, double *yy1)
{
double a,a1,a2;
char buffer[1024];
double er1,r;
short i;
FILE *fp;
r=0.5*w;
if(n==kk) return;
for(i = kk;i<=n;i++)
{
if(i==kk)
//线段两端的平行线坐标求法
{
a1=winkel(xxw[i], yyw[i], xxw[i + 1], yyw[i + 1]);
xx[i] = xxw[i] -(double)(r*sin(a1));
yy[i] = yyw[i] + (double)(r*cos(a1));
xx1[i] = xxw[i] +(double)(r*sin(a1));
yy1[i] = yyw[i] -(double)(r*cos(a1));
}
else//中间点的平行线坐标求法,在角的平分线上
{
if(i==n)
{
a1=winkel(xxw[i-1], yyw[i-1], xxw[i], yyw[i]);
xx[i] = xxw[i] -(double)(r*sin(a1));
yy[i] = yyw[i] + (double)(r*cos(a1));
xx1[i] = xxw[i] +(double)(r*sin(a1));
yy1[i] = yyw[i] -(double)(r*cos(a1));
}
else
{
a2=a1;
a1=winkel(xxw[i], yyw[i], xxw[i + 1], yyw[i + 1]);
a = (a1 + a2)*0.5;
er1 =r/cos((a2 - a1)*0.5);
if(er1>4.*r) er1=4.*r;
if(er1<-4.*r) er1=-4.*r;
xx[i] = xxw[i] -(double)(er1 *sin(a));
yy[i] = yyw[i] +(double)(er1 *cos(a));
xx1[i] = xxw[i] +(double)(er1 *sin(a));
yy1[i] = yyw[i] -(double)(er1 *cos(a));
fp=fopen("D:\\11.txt","at+");
if (fp==NULL)
{
printf("错误: 不能打开文件%s!\n");
exit(0);
}
sprintf(buffer, "%f\n", xx[i]);
puts(buffer);
fwrite(buffer, 1, strlen(buffer), fp);
fclose(fp);
}
为什么最后fp的数据只有3条???
应该怎么处理?