Skip to content

Instantly share code, notes, and snippets.

@wcspoiler
Created June 2, 2014 12:30
Show Gist options
  • Save wcspoiler/62c6ba28f0fdca8a5662 to your computer and use it in GitHub Desktop.
Save wcspoiler/62c6ba28f0fdca8a5662 to your computer and use it in GitHub Desktop.
point_f *grafic(point_f *tgm, point_f *tgm1, int n, PictureBox ^pcb){
float mx, mx1,my, my1,ymax,ymin, superymax, superymin;
int i,xmaxg,ymaxg,xming,yming,hpb,wpd, xn,xk,xcentr,ycentr, xn1, xk1;
float ymax1=tgm1[0].y, ymin1=tgm1[0].y;
point_f *tg, *tg1=new point_f[n];
g->FillRectangle(br2,0,0,pcb->Width-2,pcb->Height-2);
tg=new point_f[n];
xn=tgm[0].x;
xk=tgm[n-1].x;
xn1=tgm1[0].x;
xk1=tgm1[n-1].x;
ymax=tgm[0].y;
ymin=tgm[0].y;
ymax1=tgm1[0].y;
ymin1=tgm1[0].y;
if (ymax>ymax1)
ymax=superymax;
if (ymax<ymax1) ymax1=superymax;
if (ymin<ymin1)
ymin=superymin;
if (ymin>ymin1) ymin1=superymin;
for(i=0;i<n;i++){
if(tgm[i].y>ymax)
ymax=tgm[i].y;
if(tgm[i].y<ymin)
ymin=tgm[i].y;
}
for(i=0;i<n;i++){
if(tgm1[i].y>ymax)
ymax1=tgm1[i].y;
if(tgm1[i].y<ymin1)
ymin1=tgm1[i].y;
}
yming=0; xming=0;
xmaxg=pcb->Width; ymaxg=pcb->Height;
g->FillRectangle(br2,1,1,pcb->Width, pcb->Height);
mx=(xmaxg-xming)/Math::Abs(xk-xn);
mx1=(xmaxg-xming)/Math::Abs(xk1-xn1);
my=(ymaxg-yming)/Math::Abs(ymax-ymin);
my1=(ymaxg-yming)/Math::Abs(ymax1-ymin1);
for(i=0;i<n;i++){
tg[i].x=xming+(tgm[i].x-xn)*mx;
tg[i].y=yming+(ymax-tgm[i].y)*my;
}
for(i=0;i<n;i++){
tg1[i].x=xming+(tgm1[i].x-xn1)*mx1;
tg1[i].y=yming+(superymax-tgm1[i].y)*my1;
}
pr->Color=cl->Red;
pr->Width=3;
for(i=1;i<n-1;i++) {
g->DrawLine(pr,tg[i-1].x, tg[i-1].y, tg[i].x, tg[i].y);
}
pr->Color=cl->Green;
pr->Width=4;
for(i=1;i<n-1;i++) {
g->DrawLine(pr,tg1[i-1].x, tg1[i-1].y, tg1[i].x, tg1[i].y);
}
xcentr=xming-xn*mx;
ycentr=yming+ymax*my;
pr->Color=cl->Green;
pr->Width=1;
//Оси
g->DrawLine(pr,xming,ycentr,pcb->Width,ycentr);
g->DrawLine(pr,xcentr,yming,xcentr,pcb->Height);
g->FillEllipse(br3,xcentr-3,ycentr-3,5,5);
return tg;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment