Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. void PaintLandingGroundTrack(HDC hDC)
  2. {
  3.     std::map<double,double> gTrack;
  4.     std::fstream track;
  5.     track.open("groundtrack.txt",std::ios::in);
  6.     if(track.is_open())
  7.     {
  8.         std::string line;
  9.         double tlat, tlon;
  10.         while(std::getline(track,line))
  11.         {
  12.             sscanf(line.c_str(),"%lf%lf",&tlon,&tlat);
  13.             gTrack.insert(std::pair<double,double>(tlon,tlat));
  14.         }
  15.     }
  16.     track.close();
  17.  
  18.    
  19.    
  20.     HPEN greenp = CreatePen(PS_SOLID,4,RGB(0,255,0));
  21.     HPEN oldp = (HPEN) SelectObject(hDC,greenp);
  22.  
  23.     float KSC_LR_LON_SCALE = 82.0f/20.0f; //82px per 20 degrees longitude
  24.     float KSC_LR_LAT_SCALE = 46.0f/10.0f; //50.5px per 10 degrees latitude
  25.  
  26.  
  27.     float KSC_SR_LON_SCALE = 100.0f/0.2f; //100px per 0.2 degree
  28.     float KSC_SR_LAT_SCALE = 53.0f/0.1f; //53px per 0.1 degree
  29.  
  30.     //float longt = (81.235-80.4f)* KSC_SR_LON_SCALE; //-80 = 80W
  31.     //float lat = (29.175f-29.0f)* KSC_SR_LAT_SCALE; //80N
  32.  
  33.     switch(mWindow)
  34.     {
  35.     case 3: //KSC
  36.         if(mGTMode == 1) //long range
  37.         {
  38.             std::map<double,double>::iterator it;
  39.             int licznik = 0;
  40.             POINT *groundTrack = new POINT[(int)gTrack.size()];
  41.             for(it = gTrack.begin(); it!=gTrack.end(); it++)
  42.             {
  43.                 groundTrack[licznik].x = 68+(151.0f+it->first)*KSC_LR_LON_SCALE;
  44.                 groundTrack[licznik].y = 55+(88.0f-it->second)*KSC_LR_LAT_SCALE;
  45.                 licznik++;
  46.             }
  47.             //LineTo(hDC,68+longt,55+lat); //first is longitude, second latitude
  48.             MoveToEx(hDC,groundTrack[0].x,groundTrack[0].y,NULL);
  49.             PolylineTo(hDC,groundTrack,gTrack.size());
  50.             delete[] groundTrack;
  51.         }
  52.         if(mGTMode == 2) //medium range
  53.         {
  54.         }
  55.        
  56.         if(mGTMode == 3) //short range
  57.         {
  58.             std::map<double,double>::iterator it;
  59.             int licznik = 0;
  60.             POINT *groundTrack = new POINT[(int)gTrack.size()];
  61.             for(it = gTrack.begin(); it!=gTrack.end(); it++)
  62.             {
  63.                 if(it->first<-81.235 || it->second>29.175)
  64.                     continue;
  65.                 groundTrack[licznik].x = 78.0f+(81.235000f+it->first)*KSC_SR_LON_SCALE;
  66.                 groundTrack[licznik].y = 55.0f+(29.175000f-it->second)*KSC_SR_LAT_SCALE;
  67.                 licznik++;
  68.             }
  69.             //LineTo(hDC,68+longt,55+lat); //first is longitude, second latitude
  70.             MoveToEx(hDC,groundTrack[0].x,groundTrack[0].y,NULL);
  71.             PolylineTo(hDC,groundTrack,licznik-1);
  72.             delete[] groundTrack;
  73.             //LineTo(hDC,78+longt,55+lat);
  74.         }
  75.         break;
  76.     }
  77.  
  78.     SelectObject(hDC,oldp);
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement