Various surfaces rendered with GL.
The commands used are exactly the same as with a normal pad. The only command to add is: gStyle->SetCanvasPreferGL(true);
void glsurfaces()
{
auto title =
new TPaveText(0.2, 0.96, 0.8, 0.995);
title->SetFillColor(33);
title->AddText("Examples of Surface options");
title->Draw();
TPad *pad1 =
new TPad(
"pad1",
"Gouraud shading", 0.03, 0.50, 0.98, 0.95, 21);
TPad *pad2 =
new TPad(
"pad2",
"Color mesh", 0.03, 0.02, 0.98, 0.48, 21);
TF2 *f2 =
new TF2(
"f2",
"x**2 + y**2 - x**3 -8*x*y**4", -1., 1.2, -1.5, 1.5);
TF2 *f2clone =
new TF2(
"f2clone",
"x**2 + y**2 - x**3 -8*x*y**4",
-1., 1.2, -1.5, 1.5);
f2clone->
Draw(
"glsurf1");
700,10,700,700);
TF2 *fun1 =
new TF2(
"fun1",
"1000*((sin(x)/x)*(sin(y)/y))+200",
-6., 6., -6., 6.);
TF2 *fun2 =
new TF2(
"fun2",
"cos(y)*sin(x)+cos(x)*sin(y)",
-6., 6., -6., 6.);
fun2->
Draw(
"glsurf1cyl");
TF2 *
fun3 =
new TF2(
"fun3",
"sin(x) / x * cos(y) * y", -6., 6., -6., 6.);
TF3 *
fun4 =
new TF3(
"fun4",
"sin(x * x + y * y + z * z - 4)",
-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);
fun4->SetFillColor(colInd);
}
Double_t fun3(Double_t *x, Double_t *par)
Double_t fun4(Double_t x)
R__EXTERN TStyle * gStyle
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
virtual TH1 * GetHistogram() const
Return a pointer to the histogram used to visualise the function Note that this histogram is managed ...
virtual void SetNpx(Int_t npx=100)
Set the number of points used to draw the function.
A 2-Dim function with parameters.
virtual void SetNpy(Int_t npy=100)
Set the number of points used to draw the function.
void Draw(Option_t *option="") override
Draw this function with its current attributes.
A 3-Dim function with parameters.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
The most important graphics class in the ROOT system.
void SetLogz(Int_t value=1) override
Set Lin/Log scale for Z.
void Update() override
Update pad.
void Modified(Bool_t flag=1) override
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
A Pave (see TPave) with text, lines or/and boxes inside.
void SetFrameFillColor(Color_t color=1)
void SetPalette(Int_t ncolors=kBird, Int_t *colors=nullptr, Float_t alpha=1.)
See TColor::SetPalette.
void SetCanvasPreferGL(Bool_t prefer=kTRUE)