Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
earth.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_graphics
3 /// \notebook
4 /// This tutorial illustrates the special contour options.
5 ///
6 /// - "AITOFF" : Draw a contour via an AITOFF projection
7 /// - "MERCATOR" : Draw a contour via an Mercator projection
8 /// - "SINUSOIDAL" : Draw a contour via an Sinusoidal projection
9 /// - "PARABOLIC" : Draw a contour via an Parabolic projection
10 ///
11 /// \macro_image
12 /// \macro_code
13 ///
14 /// \author Olivier Couet (from an original macro sent by Ernst-Jan Buis)
15 
16 TCanvas *earth(){
17 
18  gStyle->SetOptTitle(1);
19  gStyle->SetOptStat(0);
20 
21  TCanvas *c1 = new TCanvas("c1","earth_projections",700,700);
22  c1->Divide(2,2);
23 
24  TH2F *ha = new TH2F("ha","Aitoff", 180, -180, 180, 179, -89.5, 89.5);
25  TH2F *hm = new TH2F("hm","Mercator", 180, -180, 180, 161, -80.5, 80.5);
26  TH2F *hs = new TH2F("hs","Sinusoidal",180, -180, 180, 181, -90.5, 90.5);
27  TH2F *hp = new TH2F("hp","Parabolic", 180, -180, 180, 181, -90.5, 90.5);
28 
29  TString dat = gROOT->GetTutorialDir();
30  dat.Append("/graphics/earth.dat");
31  dat.ReplaceAll("/./","/");
32 
33  ifstream in;
34  in.open(dat.Data());
35  Float_t x,y;
36  while (1) {
37  in >> x >> y;
38  if (!in.good()) break;
39  ha->Fill(x,y, 1);
40  hm->Fill(x,y, 1);
41  hs->Fill(x,y, 1);
42  hp->Fill(x,y, 1);
43  }
44  in.close();
45 
46  c1->cd(1); ha->Draw("aitoff");
47  c1->cd(2); hm->Draw("mercator");
48  c1->cd(3); hs->Draw("sinusoidal");
49  c1->cd(4); hp->Draw("parabolic");
50 
51  return c1;
52 }