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

📄 multargetview.cpp

📁 自己做的一个雷达仿真的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    clpDC.DrawText("时    间",TM2Rect,DT_TOP);
	//
    CRect AirLDRect(RightX/2*1.06,RightY/2*1.37,RightX/2*1.2,RightY/2*1.52);
    clpDC.DrawText("平台1",AirLDRect,DT_TOP);
	//
	CRect OnwaterLDRect(RightX/2*1.06,RightY/2*1.55,RightX/2*1.20,RightY/2*1.77);
    clpDC.DrawText("平台2",OnwaterLDRect,DT_TOP);
	//
	CRect UnwaterLDRect(RightX/2*1.06,RightY/2*1.8,RightX/2*1.2,RightY/2*2);
    clpDC.DrawText("平台3",UnwaterLDRect,DT_TOP);
	//
    CPen pWhite(PS_SOLID,2,RGB(0,0,255));
	//pYellow.CreatePen(PS_SOLID,1,RGB(0,0,256));
   
	clpDC.SelectObject(&pWhite);
    
	
	clpDC.MoveTo(RightX/2*1.06,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.06,RightY/2*2);
    
	
	clpDC.MoveTo(RightX/2*1.06,RightY/2*1.12);
	clpDC.LineTo(RightX/2*2,RightY/2*1.12); 
   
    
	
	 
 
	clpDC.MoveTo(RightX/2*1.06,RightY/2*1.35);
	clpDC.LineTo(RightX/2*2,RightY/2*1.35); 

    clpDC.MoveTo(RightX/2*1.06,RightY/2*1.54);
	clpDC.LineTo(RightX/2*2,RightY/2*1.54); 

    clpDC.MoveTo(RightX/2*1.06,RightY/2*1.79);
	clpDC.LineTo(RightX/2*2,RightY/2*1.79); 
    //纵向1
    clpDC.MoveTo(RightX/2*1.21,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.21,RightY/2*2); 
	//
	clpDC.MoveTo(RightX/2*1.36,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.36,RightY/2*1.26);
	//
	clpDC.MoveTo(RightX/2*1.66,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.66,RightY/2*1.26);
	//
	clpDC.MoveTo(RightX/2*1.81,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.81,RightY/2*2);
	//
	clpDC.MoveTo(RightX/2*1.51,RightY/2*1.07);
	clpDC.LineTo(RightX/2*1.51,RightY/2*1.26);
	//
	clpDC.MoveTo(RightX/2*2,RightY/2*1.07);
	clpDC.LineTo(RightX/2*2,RightY/2*2);
	//纵向2
	clpDC.MoveTo(RightX/2*1.41,RightY/2*1.28);
	clpDC.LineTo(RightX/2*1.41,RightY/2*2);
	//
	clpDC.MoveTo(RightX/2*1.61,RightY/2*1.28);
	clpDC.LineTo(RightX/2*1.61,RightY/2*2);
	//
	
	//

	pWhite.DeleteObject();
	pWhite.CreatePen(PS_SOLID,4,RGB(0,0,255));
    clpDC.SelectObject(&pWhite);
	clpDC.MoveTo(RightX/2*1.06,RightY/2*1.26);
	clpDC.LineTo(RightX/2*2,RightY/2*1.26);

	// TODO: Add your message handler code here
	
	// Do not call CFormView::OnPaint() for painting messages
}

/*void CMulTargetView::OnOpenairview() 
{
	CAirView *pDlg=NULL;
	if(!pDlg)
	{
		pDlg=new CAirView(this);
	ASSERT(pDlg);
	}
  pDlg->DoModal();
	
}*/











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

void CMulTargetView::OnOpenairld() 
{ 
	CMulTargetDoc * pDoc=GetDocument();
  //if(pDoc->m_deg11==0&&pDoc->m_deg12==0)
	 //{
	    //pDoc->m_deg11=255;
		//pDoc->m_deg12=285;
		
  deg1=255;
  deg2=285;
  SetTimer(1,1,NULL);
	 //}


	
}

void CMulTargetView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
 CMulTargetDoc *pDoc=GetDocument();
  	CClientDC clpDC(this);
	
	CDC memDC;
	memDC.CreateCompatibleDC(&clpDC);
	
   
	
	
	//扫描区
	//CRect SmRect(0,0,cClientRect.CenterPoint().x*1.1,cClientRect.CenterPoint().y*1.3);
    CRect SmRect(0,0,CX*0.95,CY);
   CBitmap memBitmap;
	memBitmap.CreateCompatibleBitmap(&clpDC,SmRect.Width(),SmRect.Height());
    memDC.SelectObject(&memBitmap);
	

	
   
	memDC.SelectObject(&bBlack);
	memDC.SelectObject(&pYellow);
	
	memDC.FillRect(SmRect,&bBlack);//
	CRect Ellipserect(m_Aircx,m_Aircy,m_Aircx,m_Aircy);
    Ellipserect.InflateRect(m_AirR,m_AirR);
	memDC.Ellipse(Ellipserect);
	
	
	//memDC.SetROP2(R2_NOTXORPEN);
	//同心圆

 
	for(int i=4;i>0;i--)
	{
			
	   CRect Ellipserect(m_Aircx,m_Aircy,m_Aircx,m_Aircy);
		Ellipserect.InflateRect(0.2*i*m_AirR,0.2*i*m_AirR);
     
		memDC.Ellipse(Ellipserect);
		
	}
//memDC.SetROP2(R2_NOTXORPEN);

CRect TittleAir(CX*0.7,0,CX*0.95,CY*0.1);
	
	memDC.SetTextColor(RGB(255,255,255));
    memDC.SetBkMode(TRANSPARENT); //文本设置为透明模式
    memDC.DrawText("平台1",TittleAir,DT_TOP);


	
  if(deg1==360)
  {
     deg1=0;
  }

  if(deg2==360)
  {
	  deg2=0;
  }
	

	double mr=m_AirR-3;
	deg1+=5;
	deg2+=5;
    double x1=m_Aircx-mr,
	       y1=m_Aircy-mr,
		   x2=m_Aircx+mr,
		   y2=m_Aircy+mr;
	memDC.SelectObject(&bWhite);
	
	memDC.SelectObject(&pWhite);
	memDC.Pie(x1,y1,x2,y2,m_Aircx+mr*cos(deg2*pi/180),
		m_Aircy+mr*sin(deg2*pi/180),m_Aircx+mr*cos(deg1*pi/180),
		m_Aircy+mr*sin(deg1*pi/180));

		//目标显示
    
	
	 for(int loopmb=0;loopmb<=pDoc->m_mb;loopmb++)
	 {   
		 CPen pRed(PS_DASH,1,RGB(255,0,0));
	   
                CBrush bRed(RGB(255,0,0));
                memDC.SelectObject(&pRed);
                memDC.SelectObject(&bRed); 
		 
		  int loop=0;
          //for(int loop=0;loop<=pDoc->m_mbhj;loop++)
		 if(pDoc->m_mb>-1&&pDoc->AirMB[loopmb][loop].d<m_lch)
		 {

		  while(pDoc->AirMB[loopmb][loop].hj)
		  {
			  int flag=0;
			  double fwj1=pDoc->AirMB[loopmb][loop].fwj,
		                fwj2=fwj1-90;
		      double xloop=m_Aircx+m_xspm*cos(fwj2*pi/180)*pDoc->AirMB[loopmb][loop].d,
			          yloop=m_Aircy+m_xspm*sin(fwj2*pi/180)*pDoc->AirMB[loopmb][loop].d;
                      CRect mbRect2(xloop,yloop,xloop,yloop);
                      mbRect2.InflateRect(1,1);
                      memDC.Ellipse(mbRect2);
					  loop++;
		  }

                double  fwj1=pDoc->AirMB[loopmb][loop-1].fwj,
		                fwj2=fwj1-90,
	                    d=pDoc->AirMB[loopmb][loop-1].d,
		                v=pDoc->AirMB[loopmb][loop-1].v;
        
				 if(deg2-pDoc->AirMB[loopmb][loop-1].fwj>=-5&&
		                      deg2-pDoc->AirMB[loopmb][loop-1].fwj<=0)
					   {   
		                   d-=pDoc->AirMB[loopmb][loop-1].v*1;
		   
		                   pDoc->AirMB[loopmb][loop].d=d;
                           pDoc->AirMB[loopmb][loop].fwj=fwj1;
		                   pDoc->AirMB[loopmb][loop].v=v;
                           
                           pDoc->AirMB[loopmb][loop].hj=true;
						   
						}
				 double x0=m_Aircx+m_xspm*cos(fwj2*pi/180)*d,
	      y0=m_Aircy+m_xspm*sin(fwj2*pi/180)*d;
          CRect mbRect(x0,y0,x0,y0);
           mbRect.InflateRect(3,3);
          memDC.Ellipse(mbRect);
	 
	            bRed.DeleteObject();
		        pRed.DeleteObject();
			 
		  }
	 }
	 
	memDC.SelectObject(&pWhite);
		memDC.SetROP2(R2_NOTXORPEN);
  clpDC.BitBlt(0,0,SmRect.Width(),SmRect.Height(),&memDC,0,0,SRCCOPY);
 memDC.DeleteDC;
 
 ReleaseDC(&memDC);


 clpDC.SetTextColor(RGB(255,255,255));
    clpDC.SetBkMode(TRANSPARENT); //文本设置为透明模式  
 char text[10];
   _gcvt(pDoc->m_pt1ldzq,10,text);
    clpDC.TextOut(RightX/2*1.24,RightY/2*1.40,text);//雷达周期显示
   _gcvt(1/(double)pDoc->m_pt1ldzq,10,text);
   clpDC.TextOut(RightX/2*1.44,RightY/2*1.40,text);
	_gcvt(pDoc->m_pt1ldzyjl,10,text);
    clpDC.TextOut(RightX/2*1.64,RightY/2*1.40,text);
   _gcvt(pDoc->m_pt1sd,10,text);
    clpDC.TextOut(RightX/2*1.24,RightY/2*1.20,text);
	_gcvt(pDoc->m_pt1hxj,10,text);
    clpDC.TextOut(RightX/2*1.40,RightY/2*1.20,text);
	_gcvt(pDoc->m_pt1zyj,10,text);
    clpDC.TextOut(RightX/2*1.54,RightY/2*1.20,text);
	_gcvt(pDoc->m_pt1hyj,10,text);
    clpDC.TextOut(RightX/2*1.70,RightY/2*1.20,text);
	CFormView::OnTimer(nIDEvent);
}





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

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

void CMulTargetView::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 + -