📄 airview.cpp
字号:
mvx=-sd*sin(ydfx*pi/180);
mvy=sd*cos(ydfx*pi/180);
may=a;
}
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+pow(i*T,2)/2*may+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].vx=fabs(mvx);
m_pDoc->AirMB[hi][i].vy=fabs(mvy)+a*i*T;
m_pDoc->AirMB[hi][i].v=sqrt(pow(m_pDoc->AirMB[hi][i].vx,2)+pow(m_pDoc->AirMB[hi][i].vy,2));
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=a;
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://空中目标
{
}
break;
case 2:
{
}
break;
}
}
break;
case 6://转弯
{
switch(kjshxsel)
{
case 0://水面目标
{
double w[7];
w[0]=0.05;//第一次转弯
w[1]=-0.05;//第二次转弯
w[2]=0.1;//第三次转弯
w[3]=-0.04;//第四次转弯
w[4]=-0.06;//第五次转弯
w[5]=0.08;//第六次转弯
w[6]=-0.08;//第七次转弯,转弯的角速率
double vx,vy,vxm;
vx=sd*cos(ydfx*pi/180);
vy=sd*sin(ydfx*pi/180);
m_pDoc->AirMB[hi][0].x=x0;
m_pDoc->AirMB[hi][0].y=y0;
m_pDoc->AirMB[hi][0].vx=fabs(vx);
m_pDoc->AirMB[hi][0].vy=fabs(vy);
for(j=0;j<7;j++)
{
for(i=50*j;i<50*(j+1);i++)
{
m_pDoc->AirMB[hi][i+1].x=m_pDoc->AirMB[hi][i].x+vx*sin(w[j]*T)/w[j]+vy*(cos(w[j]*T)-1)/w[j];
vxm=vx;
vx=vx*cos(w[j]*T)-vy*sin(w[j]*T);
m_pDoc->AirMB[hi][i+1].y=m_pDoc->AirMB[hi][i].y+vxm*(1-cos(w[j]*T))/w[j]+vy*sin(w[j]*T)/w[j];
vy=vxm*sin(w[j]*T)+vy*cos(w[j]*T);
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+1].vx=fabs(vx);
m_pDoc->AirMB[hi][i+1].vy=fabs(vy);
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].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://空中目标
{
}
break;
case 2://水下目标
{
}
break;
}
}
break;
case 7:
{
double w=0.1;
mvz=4000;
maz=200;
for(i=2;i<501;i++)
{
m_pDoc->AirMB[hi][i-1].x=x0+sd/w*cos(w*i*T)+Q1*normrnd[i-1];
m_pDoc->AirMB[hi][i-1].y=y0+sd/w*sin(w*i*T)+Q2*normrnd[i-1];
m_pDoc->AirMB[hi][i-1].z=z0+i*T*mvz+pow(i*T,2)/2*maz+Q3*normrnd[i-1];
m_pDoc->AirMB[hi][i-1].fwj=fabs(atan(m_pDoc->AirMB[hi][i].x
/m_pDoc->AirMB[hi][i].y)*180/pi);
m_pDoc->AirMB[hi][i-1].d=sqrt(pow(m_pDoc->AirMB[hi][i-1].x,2)+
pow(m_pDoc->AirMB[hi][i-1].y,2)+pow(m_pDoc->AirMB[hi][i-1].z,2));
//m_pDoc->AirMB[hi][i].q=q;
//m_pDoc->AirMB[hi][i].v=sd+a*i*T;
m_pDoc->AirMB[hi][i-1].vx=0;
m_pDoc->AirMB[hi][i-1].vy=0;
m_pDoc->AirMB[hi][i-1].vz=mvz;
m_pDoc->AirMB[hi][i-1].a=0;
m_pDoc->AirMB[hi][i-1].ax=0;
m_pDoc->AirMB[hi][i-1].ay=0;
m_pDoc->AirMB[hi][i-1].az=fabs(maz);
m_pDoc->AirMB[hi][i-1].tflag=false;
m_pDoc->AirMB[hi][i-1].lxflag=2;
m_pDoc->AirMB[hi][i-1].mbph=m_pDoc->AirMB[hi][0].mbph;
m_pDoc->AirMB[hi][i-1].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;
}//zong switch
m_pDoc->AirMB[hi][0].hj=true;
m_pDoc->AirMB[hi][0].tflag=true;
m_pDoc->AirMB[hi][0].d=0;
}
void CAirView::OnRadio1()
{
// TODO: Add your control notification handler code here
if(m_mbkjshx.GetCurSel()==-1)
MessageBox("请选择目标空间属性");
else
{
GetDlgItem(IDC_STJL1)->EnableWindow(FALSE);
GetDlgItem(IDC_STJL2)->EnableWindow(FALSE);
GetDlgItem(IDC_STJL3)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITJL1)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITJL2)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITJL3)->EnableWindow(FALSE);
GetDlgItem(IDC_STFWJ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITFWJ)->EnableWindow(FALSE);
GetDlgItem(IDC_STQ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITQ)->EnableWindow(FALSE);
GetDlgItem(IDC_STX)->EnableWindow(TRUE);
GetDlgItem(IDC_STY)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITX)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITY)->EnableWindow(TRUE);
if(m_mbkjshx.GetCurSel()==1||m_mbkjshx.GetCurSel()==2)
{
GetDlgItem(IDC_EDITZ)->EnableWindow(TRUE);
GetDlgItem(IDC_STZ)->EnableWindow(TRUE);
}
if(m_mbkjshx.GetCurSel()==0)
if(m_mbkjshx.GetCurSel()==2||m_mbkjshx.GetCurSel()==3)
{
GetDlgItem(IDC_EDITZ)->EnableWindow(FALSE);
GetDlgItem(IDC_STZ)->EnableWindow(FALSE);
}
}
fflag=0;
}
void CAirView::OnRadio2()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_STJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_STFWJ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITFWJ)->EnableWindow(TRUE);
GetDlgItem(IDC_STQ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITQ)->EnableWindow(TRUE);
GetDlgItem(IDC_STX)->EnableWindow(FALSE);
GetDlgItem(IDC_STY)->EnableWindow(FALSE);
GetDlgItem(IDC_STZ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITX)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITY)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITZ)->EnableWindow(FALSE);
if(m_mbkjshx.GetCurSel()==1||m_mbkjshx.GetCurSel()==2)
{
GetDlgItem(IDC_STQ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITQ)->EnableWindow(TRUE);
}
if(m_mbkjshx.GetCurSel()==0)
{
GetDlgItem(IDC_STQ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITQ)->EnableWindow(FALSE);
}
fflag=1;
}
void CAirView::OnSelchangeCmbkjshx()
{
// TODO: Add your control notification handler code here
if(m_mbkjshx.GetCurSel()==0)
{
if(fflag==0)
{
GetDlgItem(IDC_STX)->EnableWindow(TRUE);
GetDlgItem(IDC_STY)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITX)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITY)->EnableWindow(TRUE);
}
if(fflag==1)
{
GetDlgItem(IDC_STJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_STFWJ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITFWJ)->EnableWindow(TRUE);
}
GetDlgItem(IDC_STQ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITQ)->EnableWindow(FALSE);
GetDlgItem(IDC_STZ)->EnableWindow(FALSE);
GetDlgItem(IDC_EDITZ)->EnableWindow(FALSE);
}
if(m_mbkjshx.GetCurSel()==1||m_mbkjshx.GetCurSel()==2)
{
if(fflag==1)
{
GetDlgItem(IDC_STJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_STJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL1)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL2)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITJL3)->EnableWindow(TRUE);
GetDlgItem(IDC_STFWJ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITFWJ)->EnableWindow(TRUE);
GetDlgItem(IDC_STQ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITQ)->EnableWindow(TRUE);
}
if(fflag==0)
{
GetDlgItem(IDC_STX)->EnableWindow(TRUE);
GetDlgItem(IDC_STY)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITX)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITY)->EnableWindow(TRUE);
GetDlgItem(IDC_STZ)->EnableWindow(TRUE);
GetDlgItem(IDC_EDITZ)->EnableWindow(TRUE);
}
GetDlgItem(IDC_EDITA)->EnableWindow(TRUE);
GetDlgItem(IDC_STA)->EnableWindow(TRUE);
}
}
void CAirView::OnSelchangeCbydms()
{
// TODO: Add your control notification handler code here
if(m_ydms.GetCurSel()==1)
{
GetDlgItem(IDC_EDITA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STR)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDITR)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STW)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDITW)->ShowWindow(SW_HIDE);
}
else
{
if(m_ydms.GetCurSel()==2)
{
GetDlgItem(IDC_EDITA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STR)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDITR)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STW)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDITW)->ShowWindow(SW_SHOW);
}
else
{
GetDlgItem(IDC_STW)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDITW)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDITA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STR)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDITR)->ShowWindow(SW_HIDE);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -