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

📄 airtargetview.cpp

📁 自己做的一个雷达仿真的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		                 if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx<=m_cx&&
			                m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by>=m_cy)      
			                  fwj3=pDoc->AirMB[loopmb][loop].bfwj+90;
			             if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx>=m_cx&&
			                m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by<m_cy) 
			                  fwj3=270+pDoc->AirMB[loopmb][loop].bfwj;
			             if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx>=m_cx&&
			                  m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by>=m_cy) 
			                  fwj3=90-pDoc->AirMB[loopmb][loop].bfwj;
			 
			             if(deg2-fwj3>-5&&deg2-fwj3<=0&&pDoc->AirMB[loopmb][loop].d<m_lch&&!pDoc->AirMB[loopmb][loop].tflag)
						 {      
				
                               int nItem;
							   CString str;
							   str.Format("%ld",pDoc->AirMB[loopmb][loop].mbph);
							   nItem=m_byxsh.InsertItem(0,str);
							   switch(pDoc->AirMB[loopmb][loop].dwshxbz)
							   {
							   case 1:
								   str="我方目标";
								   break;
                               case 2:
								   str="敌方目标";
								   break;
							   case 3:
								   str="中立目标";
								   break;
                               case 4:
								   str="不明目标";
								  break;

							   }
                               
							   
								  m_byxsh.SetItemText(nItem,1,str);
						      switch(pDoc->AirMB[loopmb][loop].lxflag)
							  {
							   case 1:
								   str="水面目标";
								   break;
                               case 2:
								   str="空中目标";
								   break;
							   case 3:
								   str="水下目标";
								   break;
                               
							   }
							   m_byxsh.SetItemText(nItem,2,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].d);
                               m_byxsh.SetItemText(nItem,3,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].v);
                               m_byxsh.SetItemText(nItem,4,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].fwj);
                               m_byxsh.SetItemText(nItem,5,str);
							    str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].q);
                               m_byxsh.SetItemText(nItem,6,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].x);
                               m_byxsh.SetItemText(nItem,7,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].y);
                               m_byxsh.SetItemText(nItem,8,str);
							   str.Format("%1.1lf",pDoc->AirMB[loopmb][loop].z);
                               m_byxsh.SetItemText(nItem,9,str);


			                      pDoc->AirMB[loopmb][loop].tflag=true;
				              pDoc->AirMB[loopmb][loop].wjsdx=pDoc->m_pt1sd*sin(pDoc->m_pt1hxj*pi/180);
							  pDoc->AirMB[loopmb][loop].wjsdy=-pDoc->m_pt1sd*cos(pDoc->m_pt1hxj*pi/180);
                              pDoc->AirMB[loopmb][loop+1].bx=pDoc->AirMB[loopmb][loop+1].x-pDoc->m_pt1X;
                             
							  pDoc->AirMB[loopmb][loop+1].by=pDoc->AirMB[loopmb][loop+1].y-pDoc->m_pt1Y;
							 
							  
						     if(pDoc->AirMB[loopmb][loop].lxflag==2||pDoc->AirMB[loopmb][loop].lxflag==3)
							  pDoc->AirMB[loopmb][loop+1].d=sqrt(pow(pDoc->AirMB[loopmb][loop+1].bx,2)+pow(pDoc->AirMB[loopmb][loop+1].by,2)+pow(pDoc->AirMB[loopmb][loop+1].z,2));
						      else
                                pDoc->AirMB[loopmb][loop+1].d=sqrt(pow(pDoc->AirMB[loopmb][loop+1].bx,2)+
								pow(pDoc->AirMB[loopmb][loop+1].by,2));
							 pDoc->AirMB[loopmb][loop+1].bfwj=fabs(atan(pDoc->AirMB[loopmb][loop+1].bx/pDoc->AirMB[loopmb][loop+1].by)*180/pi);
						 }
					}
			 
		  
			 	loop++; 
            

		 }
		
		  
           
          if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx<m_cx&&
			  m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by<m_cy)      
		  
			  fwj3=270-pDoc->AirMB[loopmb][loop].bfwj;
			  
		 

		   if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx<=m_cx&&
			  m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by>=m_cy)      
		   {
			  fwj3=90+pDoc->AirMB[loopmb][loop].bfwj;
		  
		   }
		 
			if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx>=m_cx&&
			  m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by<m_cy) 
			{
				fwj3=270+pDoc->AirMB[loopmb][loop].bfwj;
			 
			}
			if(m_cx+m_xspm*pDoc->AirMB[loopmb][loop].bx>=m_cx&&
			  m_cy+m_xspm*pDoc->AirMB[loopmb][loop].by>=m_cy) 
			{
				
				fwj3=90-pDoc->AirMB[loopmb][loop].bfwj;
			 
			}
				
			    
			
					 
				 
				 double x0,y0;
				 /*if(loop==0&&deg2-fwj3>-5&&deg2-fwj3<=0&&pDoc->AirMB[loopmb][loop+1].d<m_lch)
				 {
					 pDoc->AirMB[loopmb][loop].hj=true;
					 m_flag1=loop;
                           pDoc->AirMB[loopmb][loop].tflag=false;
				 }
				 else
				 {*/

				    if(deg2-fwj3>-5&&deg2-fwj3<=0&&pDoc->AirMB[loopmb][loop].d<m_lch)
					{   
						 if(pDoc->AirMB[loopmb][loop-1].tflag)
						  {
							  pDoc->AirMB[loopmb][loop].m_flag=loop;
						      pDoc->AirMB[loopmb][loop].hj=true;
                            //pDoc->AirMB[loopmb][loop].tflag=false;
							
						 }
						   
						  
						   
						  // if(pDoc->AirMB[loopmb][loop].bfwj-pDoc->AirMB[loopmb][loop-1].fwj<5&&deg2-fwj3<10)
                              // pDoc->AirMB[loopmb][loop].hj=false;

					}
				
				    //m_flag1+=5;
                      
				 if(loop>=2&&(pDoc->AirMB[loopmb][loop].lxflag==2||pDoc->AirMB[loopmb][loop].lxflag==3))
				 {
					 x0=m_cx+pDoc->AirMB[loopmb][loop-1].d*cos(fwj2*pi/180)*m_xspm;
		             y0=m_cy+pDoc->AirMB[loopmb][loop-1].d*sin(fwj2*pi/180)*m_xspm;
				 }
				 if(loop!=1&&pDoc->AirMB[loopmb][loop].lxflag==1)
				 {
                     x0=m_cx+m_xspm*pDoc->AirMB[loopmb][loop-1].bx;
					 
					 y0=m_cy+m_xspm*pDoc->AirMB[loopmb][loop-1].by;
				 }
				
           switch(pDoc->AirMB[loopmb][loop-1].dwshxbz)
					 {
					 case 1:
						 memDC.SelectObject(&pRed);
						 memDC.SelectObject(&bRed);
						 break;
					 case 2:
						 memDC.SelectObject(&pBlue);
						 memDC.SelectObject(&bBlue);
						 break;
                     case 3:
						 memDC.SelectObject(&pGreen);
						 memDC.SelectObject(&bGreen);
						 break;
					 case 4:
						 memDC.SelectObject(&pZhl);
						 memDC.SelectObject(&bZhl);
						 break;
					 }
				 CRect mbRect(x0,y0,x0,y0);
           mbRect.InflateRect(3,3);
          memDC.Ellipse(mbRect);
	 
	            
			 
		  }
	}

	memDC.SetROP2(R2_NOTXORPEN);
  clpDC.BitBlt(0,0,SmRect.Width(),SmRect.Height(),&memDC,0,0,SRCCOPY);
 memDC.DeleteDC;
 
 ReleaseDC(&memDC);
 deg1+=5;
 deg2+=5;

	CFormView::OnTimer(nIDEvent);
}

void CAirTargetView::OnOpenairld() 
{
	// TODO: Add your command handler code here
	deg1=255;
	deg2=285;
    SetTimer(1,1,NULL);
	
}

void CAirTargetView::OnPouseairld() 
{
	// TODO: Add your command handler code here
	
	
	
	CClientDC clpDC(this);
	double mr=m_r-3;
	
    double x1=m_cx-mr,
	       y1=m_cy-mr,
		   x2=m_cx+mr,
		   y2=m_cy+mr;
	clpDC.SelectObject(&bWhite);
	
	clpDC.SelectObject(&pWhite);
	clpDC.Pie(x1,y1,x2,y2,m_cx+mr*cos(deg2*pi/180),
		m_cy+mr*sin(deg2*pi/180),m_cx+mr*cos(deg1*pi/180),
		m_cy+mr*sin(deg1*pi/180));
    KillTimer(1);
   /*clpDC.Pie(x1,y1,x2,y2,m_cx+mr*cos(deg2*pi/180),
		m_cy+mr*sin(deg2*pi/180),m_cx+mr*cos(deg1*pi/180),
		m_cy+mr*sin(deg1*pi/180));*/
}

void CAirTargetView::OnContinueairld() 
{
	// TODO: Add your command handler code here
	SetTimer(1,1000/360,NULL);
	
}



void CAirTargetView::OnLch500() 
{
	// TODO: Add your command handler code here
    //量程显示  待编
    m_lch=500000;
    m_xspm=m_r/500000;
    
    

    
	
}

void CAirTargetView::AirmbXsh()
{

   CMulTargetDoc *pDoc=GetDocument();
	CClientDC clpDC(this);
   CPen pRed(PS_DASH,1,RGB(255,0,0));
   CBrush bRed(RGB(255,0,0));
   clpDC.SelectObject(&pRed);
   clpDC.SelectObject(&bRed);
   
   double fwj=pDoc->AirMB[pDoc->m_mb][pDoc->m_mbhj].fwj,
	      d=pDoc->AirMB[pDoc->m_mb][pDoc->m_mbhj].d;

   double x0=m_xspm*sin(fwj*pi/180)*d+m_cx,
	      y0=m_xspm*cos(fwj*pi/180)*d+m_cy;
   CRect mbRect(x0,y0,x0,y0);
   mbRect.InflateRect(1,1,1,1);
   clpDC.Ellipse(mbRect);
}

void CAirTargetView::OnLch200() 
{
	// TODO: Add your command handler code here
	m_lch=200000;
    m_xspm=m_r/200000;
}


void CAirTargetView::OnLch100() 
{
	// TODO: Add your command handler code here
	m_lch=100000;
    m_xspm=m_r/100000;
}

void CAirTargetView::OnLch50() 
{
	// TODO: Add your command handler code here
	m_lch=50000;
    m_xspm=m_r/50000;
}

void CAirTargetView::OnLch20() 
{
	// TODO: Add your command handler code here
	m_lch=20000;
    m_xspm=m_r/20000;
}
void CAirTargetView::OnLch10() 
{
	// TODO: Add your command handler code here
	m_lch=10000;
    m_xspm=m_r/10000;
}


void CAirTargetView::OnBtsend() 
{
	// TODO: Add your control notification handler code here
	
  


}

void CAirTargetView::OnLdxx() 
{
	// TODO: Add your command handler code here
	CLdxxDlg *pDlg=NULL;
 	if(!pDlg)
 	{
		pDlg=new CLdxxDlg(this);
 	ASSERT(pDlg);
 	}
   pDlg->DoModal();
	
}



void CAirTargetView::OnJtxx() 
{
	// TODO: Add your command handler code here
		CWjcshDlg *pDlg=NULL;
 	if(!pDlg)
 	{
		pDlg=new CWjcshDlg(this);
 	ASSERT(pDlg);
 	}
   pDlg->DoModal();
}

void CAirTargetView::OnMbshc() 
{
	// TODO: Add your command handler code here
	CMulTargetDoc *pDoc=GetDocument();
	pDoc->m_T=pDoc->m_pt1ldzq;
	
	CAirView *pDlg=NULL;
 	if(!pDlg)
 	{
		pDlg=new CAirView(this);
 	ASSERT(pDlg);
 	}
   pDlg->DoModal();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -