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

📄 airview.cpp

📁 自己做的一个雷达仿真的程序
💻 CPP
📖 第 1 页 / 共 4 页
字号:

                       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 + -