【求助】c++的问题,要求画一个波形图,可是图出不来,自己修改不了,求帮助。
void CTestDlg::OnPaint() {
CPaintDC dc(this); // device context for painting
int i,j;
int drive=DETECT;
int mode=2;
float kt,ky,ym;
char s[100],c;
int x,y,xe,ye;
int ty;
int LP,VN;
float x11,x21,x31,x41,x10,x20,x30,x40,e0,R;
float x01,x02,x03,e01;
int a[10][10];
float ST,DT;
ST=1000;DT=1;
LP=ST/DT;
x10=0,x20=0,x30=0,x40=0,R=1;
a[0][0]=x30;
for (i=1;i<=LP;i++)
{
e0=R-x30/0.9-x40;
x11=x10+0.014*DT*e0;
x21=exp(-DT/27)*x20+(1-exp(-DT/27))*x10;
x31=exp(-DT/27)*x30+(1-exp(-DT/27))*x20;
x41=x40+DT/0.9/155*x30;
a[0][i]=x31;
x10=x11;x20=x21;x30=x31;x40=x41;
}
ym=fabs(a[0][0]);
for(j=0;j<LP;j=j++)
{
for(i=0;i<VN;i++)
{if(fabs(a[i][j])>ym) ym=fabs(a[i][j]);
}
}
initgraph(&drive,&mode,"");
x=40;xe=620;
y=40;ye=440;
kt=(xe-x)/(LP*DT);
ky=(ye-y)/ym/2.0;
ty=y+(ye-y)/2;
line(x,ty,xe+10,ty);
line(xe,ty+3,xe+10,ty);
line(xe,ty-3,xe+10,ty);
line(x,y-10,x,ye+10);
line(x-3,y,x,y-10);
line(x+3,y,x,y-10);
for(j=1;j<=10;j++)
line(x+j*(xe-x)/10.0,ty-3,x+j*(xe-x)/10.0,ty+3);
for(j=1;j<=11;j++)
line(x-3,+j*(ye-y)/10.0,x+3,j*(ye-y)/10.0);
outtextxy(xe,ty+5,"t");
outtextxy(x-10,y-10,"y");
for(j=1;j<=9;j++)
{
gcvt(j*(xe-x)/10.0/kt,2,s);
outtextxy(x-10+j*(xe-x)/10.0,ty+5,s);
}
for(j=-5;j<=5;j++)
{
gcvt(j*(ye-y)/10.0/ky,2,s);
outtextxy(0,240-j*(ye-y)/10.0,s);
}
for(i=0;i<VN;i++)
{ moveto(x,ty);
for(j=1;j<LP;j=j++)
lineto(x+j*DT*kt,ty-ky*a[i][j]);
}
我需要出一个波形图,可是设置的x,y轴坐标有问题,而且波形图也出不来,不知道问题在哪里,希望大神来帮忙。因为下了easyx的补丁,所以graphics.h可以用。
[ 本帖最后由 qqyjsw 于 2015-4-17 23:08 编辑 ]