NaBlA
Сын Амбера
Я когда-то класс для этого писал, выкладываю масштабирование и рисование графика. Это точно рабочее
//4
void grap :: maxmin(void)
{
while(!feof(f1))
{
fscanf(f1,"%lf %lf\n",&x,&y);
if( (fabs(x)>M) ||(fabs(y)>M) ) break;
if(fabs(x)>xmax) xmax=fabs(x);
if(fabs(y)>ymax) ymax=fabs(y);
if(kbhit()) break;
}
mattaby = 240/ymax;
mattabx = 320/xmax;
if(ymax==0) return;
if(xmax == 0) return;
fclose(f1);
};
//5
void grap :: GRAPHER(char*adress,char*Xcl,char*Ycl)
{
opengr(adress);
osi(Xcl,Ycl);
maxmin();
setcolor(WHITE);
while(!feof(g1))
{
fscanf(g1,"%lf %lf\n",&x,&y);
if(fabs(x)>M ||(fabs(y)>M)) break;
x = x*mattabx + 320;
y = 240 - y*mattaby;
if(kbhit()) break;
if(i==0) {x1=x;y1=y;}
//line(x,y,x1,y1);
putpixel(x,y,WHITE);
i=1;
x1=x;y1=y;
}
fclose(g1);
i = 0;
};
//4
void grap :: maxmin(void)
{
while(!feof(f1))
{
fscanf(f1,"%lf %lf\n",&x,&y);
if( (fabs(x)>M) ||(fabs(y)>M) ) break;
if(fabs(x)>xmax) xmax=fabs(x);
if(fabs(y)>ymax) ymax=fabs(y);
if(kbhit()) break;
}
mattaby = 240/ymax;
mattabx = 320/xmax;
if(ymax==0) return;
if(xmax == 0) return;
fclose(f1);
};
//5
void grap :: GRAPHER(char*adress,char*Xcl,char*Ycl)
{
opengr(adress);
osi(Xcl,Ycl);
maxmin();
setcolor(WHITE);
while(!feof(g1))
{
fscanf(g1,"%lf %lf\n",&x,&y);
if(fabs(x)>M ||(fabs(y)>M)) break;
x = x*mattabx + 320;
y = 240 - y*mattaby;
if(kbhit()) break;
if(i==0) {x1=x;y1=y;}
//line(x,y,x1,y1);
putpixel(x,y,WHITE);
i=1;
x1=x;y1=y;
}
fclose(g1);
i = 0;
};