```// @(#)root/graf:\$Id\$
// Author: Sebastian Boser, Mathieu Demaret 02/02/06

/*************************************************************************
*                                                                       *
* For the licensing terms see \$ROOTSYS/LICENSE.                         *
* For the list of contributors see \$ROOTSYS/README/CREDITS.             *
*************************************************************************/

//______________________________________________________________________________
/* Begin_Html
<center><h2>TGraphPolar : to draw a polar graph</h2></center>
TGraphPolar creates a polar graph (including error bars). A TGraphPolar is
a TGraphErrors represented in polar coordinates.
It uses the class TGraphPolargram to draw the polar axis.
<p>
Example:
End_Html
Begin_Macro(source)
{
TCanvas * CPol = new TCanvas("CPol","TGraphPolar Example",500,500);

Double_t theta[8];
Double_t etheta[8];

for (int i=0; i<8; i++) {
theta[i]   = (i+1)*(TMath::Pi()/4.);
etheta[i]  = TMath::Pi()/8.;
}

grP1->SetTitle("TGraphPolar Example");

grP1->SetMarkerStyle(20);
grP1->SetMarkerSize(2.);
grP1->SetMarkerColor(4);
grP1->SetLineColor(2);
grP1->SetLineWidth(3);
grP1->Draw("PE");

// Update, otherwise GetPolargram returns 0
CPol->Update();

return CPol;
}
End_Macro */

#include "TROOT.h"
#include "TGraphPolar.h"
#include "TGraphPolargram.h"

ClassImp(TGraphPolar);

//______________________________________________________________________________
TGraphPolar::TGraphPolar() : TGraphErrors(),
fOptionAxis(kFALSE),fPolargram(0),fXpol(0),fYpol(0)
{
// TGraphPolar default constructor.

}

//______________________________________________________________________________
TGraphPolar::TGraphPolar(Int_t n, const Double_t* theta, const Double_t* r,
const Double_t *etheta, const Double_t* er)
: TGraphErrors(n,theta,r,etheta,er),
fOptionAxis(kFALSE),fPolargram(0),fXpol(0),fYpol(0)
{
// TGraphPolar constructor.
//
// n      : number of points.
// theta  : angular values.
// etheta : errors on angular values.
// er     : errors on radial values.

SetEditable(kFALSE);
}

//______________________________________________________________________________
TGraphPolar::~TGraphPolar()
{
// TGraphPolar destructor.
delete []fXpol;
delete []fYpol;
}

//______________________________________________________________________________
void TGraphPolar::Draw(Option_t* options)
{
// Draw TGraphPolar.

// Process options
TString opt = options;
opt.ToUpper();

// Ignore same
opt.ReplaceAll("SAME","");

// ReDraw polargram if required by options
if (opt.Contains("A")) fOptionAxis = kTRUE;
opt.ReplaceAll("A","");

}

//______________________________________________________________________________
Double_t *TGraphPolar::GetXpol()
{
// Return points in polar coordinates.

if (!fXpol) fXpol = new Double_t[fNpoints];
return fXpol;
}

//______________________________________________________________________________
Double_t *TGraphPolar::GetYpol()
{
// Return points in polar coordinates.

if (!fYpol) fYpol = new Double_t[fNpoints];
return fYpol;
}

//______________________________________________________________________________
void TGraphPolar::SetMaxPolar(Double_t maximum)
{
// Set maximum Polar.

if (fPolargram) fPolargram->ChangeRangePolar(fPolargram->GetTMin(),maximum);
}

//______________________________________________________________________________
{
// Set maximum radial at the intersection of the positive X axis part and
// the circle.

}

//______________________________________________________________________________
void TGraphPolar::SetMinPolar(Double_t minimum)
{
// Set minimum Polar.

if (fPolargram) fPolargram->ChangeRangePolar(minimum, fPolargram->GetTMax());
}

//______________________________________________________________________________
{
// Set minimum radial in the center of the circle.

}
```
TGraphPolar.cxx:1
TGraphPolar.cxx:2
TGraphPolar.cxx:3
TGraphPolar.cxx:4
TGraphPolar.cxx:5
TGraphPolar.cxx:6
TGraphPolar.cxx:7
TGraphPolar.cxx:8
TGraphPolar.cxx:9
TGraphPolar.cxx:10
TGraphPolar.cxx:11
TGraphPolar.cxx:12
TGraphPolar.cxx:13
TGraphPolar.cxx:14
TGraphPolar.cxx:15
TGraphPolar.cxx:16
TGraphPolar.cxx:17
TGraphPolar.cxx:18
TGraphPolar.cxx:19
TGraphPolar.cxx:20
TGraphPolar.cxx:21
TGraphPolar.cxx:22
TGraphPolar.cxx:23
TGraphPolar.cxx:24
TGraphPolar.cxx:25
TGraphPolar.cxx:26
TGraphPolar.cxx:27
TGraphPolar.cxx:28
TGraphPolar.cxx:29
TGraphPolar.cxx:30
TGraphPolar.cxx:31
TGraphPolar.cxx:32
TGraphPolar.cxx:33
TGraphPolar.cxx:34
TGraphPolar.cxx:35
TGraphPolar.cxx:36
TGraphPolar.cxx:37
TGraphPolar.cxx:38
TGraphPolar.cxx:39
TGraphPolar.cxx:40
TGraphPolar.cxx:41
TGraphPolar.cxx:42
TGraphPolar.cxx:43
TGraphPolar.cxx:44
TGraphPolar.cxx:45
TGraphPolar.cxx:46
TGraphPolar.cxx:47
TGraphPolar.cxx:48
TGraphPolar.cxx:49
TGraphPolar.cxx:50
TGraphPolar.cxx:51
TGraphPolar.cxx:52
TGraphPolar.cxx:53
TGraphPolar.cxx:54
TGraphPolar.cxx:55
TGraphPolar.cxx:56
TGraphPolar.cxx:57
TGraphPolar.cxx:58
TGraphPolar.cxx:59
TGraphPolar.cxx:60
TGraphPolar.cxx:61
TGraphPolar.cxx:62
TGraphPolar.cxx:63
TGraphPolar.cxx:64
TGraphPolar.cxx:65
TGraphPolar.cxx:66
TGraphPolar.cxx:67
TGraphPolar.cxx:68
TGraphPolar.cxx:69
TGraphPolar.cxx:70
TGraphPolar.cxx:71
TGraphPolar.cxx:72
TGraphPolar.cxx:73
TGraphPolar.cxx:74
TGraphPolar.cxx:75
TGraphPolar.cxx:76
TGraphPolar.cxx:77
TGraphPolar.cxx:78
TGraphPolar.cxx:79
TGraphPolar.cxx:80
TGraphPolar.cxx:81
TGraphPolar.cxx:82
TGraphPolar.cxx:83
TGraphPolar.cxx:84
TGraphPolar.cxx:85
TGraphPolar.cxx:86
TGraphPolar.cxx:87
TGraphPolar.cxx:88
TGraphPolar.cxx:89
TGraphPolar.cxx:90
TGraphPolar.cxx:91
TGraphPolar.cxx:92
TGraphPolar.cxx:93
TGraphPolar.cxx:94
TGraphPolar.cxx:95
TGraphPolar.cxx:96
TGraphPolar.cxx:97
TGraphPolar.cxx:98
TGraphPolar.cxx:99
TGraphPolar.cxx:100
TGraphPolar.cxx:101
TGraphPolar.cxx:102
TGraphPolar.cxx:103
TGraphPolar.cxx:104
TGraphPolar.cxx:105
TGraphPolar.cxx:106
TGraphPolar.cxx:107
TGraphPolar.cxx:108
TGraphPolar.cxx:109
TGraphPolar.cxx:110
TGraphPolar.cxx:111
TGraphPolar.cxx:112
TGraphPolar.cxx:113
TGraphPolar.cxx:114
TGraphPolar.cxx:115
TGraphPolar.cxx:116
TGraphPolar.cxx:117
TGraphPolar.cxx:118
TGraphPolar.cxx:119
TGraphPolar.cxx:120
TGraphPolar.cxx:121
TGraphPolar.cxx:122
TGraphPolar.cxx:123
TGraphPolar.cxx:124
TGraphPolar.cxx:125
TGraphPolar.cxx:126
TGraphPolar.cxx:127
TGraphPolar.cxx:128
TGraphPolar.cxx:129
TGraphPolar.cxx:130
TGraphPolar.cxx:131
TGraphPolar.cxx:132
TGraphPolar.cxx:133
TGraphPolar.cxx:134
TGraphPolar.cxx:135
TGraphPolar.cxx:136
TGraphPolar.cxx:137
TGraphPolar.cxx:138
TGraphPolar.cxx:139
TGraphPolar.cxx:140
TGraphPolar.cxx:141
TGraphPolar.cxx:142
TGraphPolar.cxx:143
TGraphPolar.cxx:144
TGraphPolar.cxx:145
TGraphPolar.cxx:146
TGraphPolar.cxx:147
TGraphPolar.cxx:148
TGraphPolar.cxx:149
TGraphPolar.cxx:150
TGraphPolar.cxx:151
TGraphPolar.cxx:152
TGraphPolar.cxx:153
TGraphPolar.cxx:154
TGraphPolar.cxx:155
TGraphPolar.cxx:156
TGraphPolar.cxx:157
TGraphPolar.cxx:158
TGraphPolar.cxx:159
TGraphPolar.cxx:160
TGraphPolar.cxx:161
TGraphPolar.cxx:162
TGraphPolar.cxx:163
TGraphPolar.cxx:164
TGraphPolar.cxx:165
TGraphPolar.cxx:166
TGraphPolar.cxx:167
TGraphPolar.cxx:168
TGraphPolar.cxx:169
TGraphPolar.cxx:170
TGraphPolar.cxx:171
TGraphPolar.cxx:172
TGraphPolar.cxx:173
TGraphPolar.cxx:174