📄 airview.cpp
字号:
for(i=1;i<500;i++)
{
m_pDoc->AirMB[hi][i].x=x0+i*T*mvx+Q1*normrnd[i];
m_pDoc->AirMB[hi][i].y=y0+i*T*mvy+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].z=z0+i*T*mvz+Q3*normrnd[i];
m_pDoc->AirMB[hi][i].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x
/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i].d=sqrt(pow(m_pDoc->AirMB[hi][i].x,2)+
pow(m_pDoc->AirMB[hi][i].y,2)+pow(m_pDoc->AirMB[hi][i].z,2));
m_pDoc->AirMB[hi][i].q=q;
m_pDoc->AirMB[hi][i].v=sd;
m_pDoc->AirMB[hi][i].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy);
m_pDoc->AirMB[hi][i].vz=mvz;
m_pDoc->AirMB[hi][i].a=0;
m_pDoc->AirMB[hi][i].ax=0;
m_pDoc->AirMB[hi][i].ay=0;
m_pDoc->AirMB[hi][i].az=0;
m_pDoc->AirMB[hi][i].tflag=false;
m_pDoc->AirMB[hi][i].lxflag=3;
m_pDoc->AirMB[hi][i].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i].dwshxbz=m_pDoc->AirMB[hi][1].dwshxbz;
}
m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X0;
m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y0;
m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2)+pow(m_pDoc->AirMB[hi][1].z,2));
m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
}
}
break;
}
//匀加速运动
case 1:
{
switch(kjshxsel)
{
case 0:
//水面目标
{
//a=300; //目标的初始加速度
if(ydfx*pi/180<0&&ydfx*pi/180>=-90)
{
mvx=-sd*fabs(sin(ydfx*pi/180*pi/180)); //X方向目标的初始速度
max=-a*fabs(sin(ydfx*pi/180*pi/180)); //X方向目标的初始加速度
mvy=-sd*cos(ydfx*pi/180*pi/180); //y方向目标的初始速度
may=-a*cos(ydfx*pi/180*pi/180);
}
if(ydfx*pi/180<-90)
{
mvx=-sd*fabs(sin(ydfx*pi/180*pi/180)); //X方向目标的初始速度
max=-a*fabs(sin(ydfx*pi/180*pi/180));
mvy=sd*fabs(cos(ydfx*pi/180*pi/180)); //y方向目标的初始速度
may=a*fabs(cos(ydfx*pi/180*pi/180));
}
if(ydfx*pi/180>=0&&ydfx*pi/180<90)
{
mvx=sd*sin(ydfx*pi/180*pi/180); //X方向目标的初始速度
max=a*sin(ydfx*pi/180*pi/180);
mvy=-sd*cos(ydfx*pi/180*pi/180); //y方向目标的初始速度
may=-a*cos(ydfx*pi/180*pi/180);
}
if(ydfx*pi/180>=90)
{
mvx=sd*sin(ydfx*pi/180*pi/180); //X方向目标的初始速度
max=a*sin(ydfx*pi/180*pi/180);
mvy=sd*fabs(cos(ydfx*pi/180*pi/180)); //y方向目标的初始速度
may=a*fabs(cos(ydfx*pi/180*pi/180)); //y方向目标的初始加速度
}
for(i=1;i<500;i++)
{
m_pDoc->AirMB[hi][i].x=x0+i*T*mvx+pow(i*T,2)/2*max+Q1*normrnd[i];
m_pDoc->AirMB[hi][i].y=y0+i*T*mvy+pow(i*T,2)/2*may+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].z=0;
m_pDoc->AirMB[hi][i].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x
/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i].d=sqrt(pow(m_pDoc->AirMB[hi][i].x,2)+
pow(m_pDoc->AirMB[hi][i].y,2));
m_pDoc->AirMB[hi][i].q=0;
m_pDoc->AirMB[hi][i].v=sd+a*i*T;
m_pDoc->AirMB[hi][i].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy);
m_pDoc->AirMB[hi][i].vz=0;
m_pDoc->AirMB[hi][i].a=a;
m_pDoc->AirMB[hi][i].ax=fabs(max);
m_pDoc->AirMB[hi][i].ay=fabs(may);
m_pDoc->AirMB[hi][i].az=0;
m_pDoc->AirMB[hi][i].tflag=false;
m_pDoc->AirMB[hi][i].lxflag=1;
m_pDoc->AirMB[hi][i].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i].dwshxbz=m_pDoc->AirMB[hi][1].dwshxbz;
}
m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X;
m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y;
m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2));
m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
break;
}
//空中目标
case 1:
{ //a=300;
//q=pi/3; //目标的高低角
if(ydfx*pi/180<=-90)
{
mvx=-sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180)); //X方向目标的初始速度
mvy=sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
max=-a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
may=a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180<0&&ydfx*pi/180>-90)
{
mvx=-sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=-a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=-sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
may=-a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180>=0&&ydfx*pi/180<=90)
{
mvx=sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=-sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180)); //y方向目标的初始速度
may=-a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180>90)
{
mvx=sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
may=a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
mvz=sd*sin(q); //z方向目标的初始速度
maz=a*sin(q);
for(i=1;i<500;i++)
{
m_pDoc->AirMB[hi][i].x=x0+i*T*mvx+pow(i*T,2)/2*max+Q1*normrnd[i];
m_pDoc->AirMB[hi][i].y=y0+i*T*mvy+pow(i*T,2)/2*may+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].z=z0+i*T*mvz+pow(i*T,2)/2*maz+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x
/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i].d=sqrt(pow(m_pDoc->AirMB[hi][i].x,2)+
pow(m_pDoc->AirMB[hi][i].y,2)+pow(m_pDoc->AirMB[hi][i].z,2));
m_pDoc->AirMB[hi][i].q=q;
m_pDoc->AirMB[hi][i].v=sd+a*i*T;
m_pDoc->AirMB[hi][i].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy);
m_pDoc->AirMB[hi][i].vz=mvz;
m_pDoc->AirMB[hi][i].a=a;
m_pDoc->AirMB[hi][i].ax=fabs(max);
m_pDoc->AirMB[hi][i].ay=fabs(may);
m_pDoc->AirMB[hi][i].az=fabs(maz);
m_pDoc->AirMB[hi][i].tflag=false;
m_pDoc->AirMB[hi][i].lxflag=2;
m_pDoc->AirMB[hi][i].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i].dwshxbz=m_pDoc->AirMB[hi][1].dwshxbz;
}
m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X;
m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y;
m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2)+pow(m_pDoc->AirMB[hi][1].z,2));
m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
}
break;
//水下目标
case 2:
{
//a=300;
//q=-pi/3; //目标的高低角
if(ydfx*pi/180<=-90)
{
mvx=-sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180)); //X方向目标的初始速度
mvy=sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
max=-a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
may=a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180<0&&ydfx*pi/180>-90)
{
mvx=-sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=-a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=-sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
may=-a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180>=0&&ydfx*pi/180<=90)
{
mvx=sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=-sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180)); //y方向目标的初始速度
may=-a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
if(ydfx*pi/180>90)
{
mvx=sd*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
max=a*fabs(cos( q*pi/180)*sin( ydfx*pi/180));
mvy=sd*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
may=a*fabs(cos( q*pi/180)*cos( ydfx*pi/180));
}
mvz=sd*sin(q); //z方向目标的初始速度
maz=a*sin(q);
for(i=1;i<500;i++)
{
m_pDoc->AirMB[hi][i].x=x0+i*T*mvx+pow(i*T,2)/2*max+Q1*normrnd[i];
m_pDoc->AirMB[hi][i].y=y0+i*T*mvy+pow(i*T,2)/2*may+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].z=z0+i*T*mvz+pow(i*T,2)/2*maz+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x
/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i].d=sqrt(pow(m_pDoc->AirMB[hi][i].x,2)+
pow(m_pDoc->AirMB[hi][i].y,2)+pow(m_pDoc->AirMB[hi][i].z,2));
m_pDoc->AirMB[hi][i].q=q;
m_pDoc->AirMB[hi][i].v=sd+a*i*T;
m_pDoc->AirMB[hi][i].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy);
m_pDoc->AirMB[hi][i].vz=mvz;
m_pDoc->AirMB[hi][i].a=a;
m_pDoc->AirMB[hi][i].ax=fabs(max);
m_pDoc->AirMB[hi][i].ay=fabs(may);
m_pDoc->AirMB[hi][i].az=fabs(maz);
m_pDoc->AirMB[hi][i].tflag=false;
m_pDoc->AirMB[hi][i].lxflag=3;
m_pDoc->AirMB[hi][i].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i].dwshxbz=m_pDoc->AirMB[hi][1].dwshxbz;
}
m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X;
m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y;
m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2)+pow(m_pDoc->AirMB[hi][1].z,2));
m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
}
break;
} //switch
break;
}
//匀速圆周运动
case 2:
{
switch(kjshxsel)
{
case 0: //水面
{
double R,
w=m_w;//目标作圆周运动的角速率
R=m_r;//sd/w;//目标作圆周运动的半径
for(i=1;i<500;i++)
{
m_pDoc->AirMB[hi][i].x=x0+R*cos(w*i*T+ydfx*pi/180*pi/180)+Q1*normrnd[i];
m_pDoc->AirMB[hi][i].y=y0+R*sin(w*i*T+ydfx*pi/180*pi/180)+Q2*normrnd[i];
m_pDoc->AirMB[hi][i].z=0;
m_pDoc->AirMB[hi][i].d=sqrt((m_pDoc->AirMB[hi][i].x,2)+pow(m_pDoc->AirMB[hi][i].y,2));
m_pDoc->AirMB[hi][i].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i].q=0;
m_pDoc->AirMB[hi][i].v=sd;
m_pDoc->AirMB[hi][i].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy);
m_pDoc->AirMB[hi][i].vz=0;
m_pDoc->AirMB[hi][i].a=0;
m_pDoc->AirMB[hi][i].ax=0;
m_pDoc->AirMB[hi][i].ay=0;
m_pDoc->AirMB[hi][i].az=0;
m_pDoc->AirMB[hi][i].lxflag=1;
m_pDoc->AirMB[hi][i].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i].dwshxbz=m_pDoc->AirMB[hi][1].dwshxbz;
}
m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X;
m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y;
m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2));
m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
// m_pDoc->AirMB[hi][1].bx=m_pDoc->AirMB[hi][1].x-m_pDoc->m_pt1X;
//m_pDoc->AirMB[hi][1].by=m_pDoc->AirMB[hi][1].y-m_pDoc->m_pt1Y;
//m_pDoc->AirMB[hi][1].d=sqrt(pow(m_pDoc->AirMB[hi][1].bx,2)+pow(m_pDoc->AirMB[hi][1].by,2));
//m_pDoc->AirMB[hi][1].bfwj=fabs(atan(m_pDoc->AirMB[hi][1].bx/m_pDoc->AirMB[hi][1].by)*180/pi);
}
break;
//case 1: //空中
//{
//}
//break;
//case 2: //水下
//{
//}
//break;
}
}
break;
//辛格运动
case 3:
{
switch(kjshxsel)
{
case 0://水面目标
{
int time1=10,
time2=60;
a=200;
if(ydfx*pi/180>=0&&ydfx*pi/180<90)
{
mvx=sd*fabs(sin(ydfx*pi/180));
mvy=-sd*fabs(cos(ydfx*pi/180));
max=a*fabs(sin(ydfx*pi/180));
may=-a*fabs(cos(ydfx*pi/180));
}
if(ydfx*pi/180>=90)
{
mvx=sd*fabs(sin(ydfx*pi/180));
mvy=sd*fabs(cos(ydfx*pi/180));
max=a*fabs(sin(ydfx*pi/180));
may=a*fabs(cos(ydfx*pi/180));
}
if(ydfx*pi/180<-90)
{
mvx=-sd*fabs(sin(ydfx*pi/180));
mvy=sd*fabs(cos(ydfx*pi/180));
max=-a*fabs(sin(ydfx*pi/180));
may=a*fabs(cos(ydfx*pi/180));
}
if(ydfx*pi/180>=-90&&ydfx*pi/180<0)
{
mvx=-sd*fabs(sin(ydfx*pi/180));
mvy=-sd*fabs(cos(ydfx*pi/180));
max=-a*fabs(sin(ydfx*pi/180));
may=-a*fabs(cos(ydfx*pi/180));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -