⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 airview.cpp

📁 自己做的一个雷达仿真的程序
💻 CPP
📖 第 1 页 / 共 4 页
字号:
					     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 + -