Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
radialgradients.C File Reference

Detailed Description

This tutorial demonstrates how to use radial gradients, custom colors, transparency.

Requires OpenGL or Web-based canvas

// Includes for ACLiC:
#include "TColorGradient.h"
#include "TEllipse.h"
#include "TRandom.h"
#include "TCanvas.h"
#include "TStyle.h"
#include "TError.h"
//______________________________________________________________________
{
std::vector<Int_t> colors;
for (int n = 0; n < 2; ++n)
colors.emplace_back(gRandom->Integer(10) + 2);
// example how to modify gradient
auto gradient = dynamic_cast<TRadialGradient *>(gROOT->GetColor(indx));
if (gradient) {
// change center and radius
gradient->SetRadialGradient({0.3, 0.3}, 0.7);
// change alpha parameter for the colors
gradient->SetColorAlpha(0, 0.2 + gRandom->Rndm() * 0.8);
gradient->SetColorAlpha(1, 0.2 + gRandom->Rndm() * 0.8);
} else {
::Error("CreateRandomGradientFill", "failed to find new gradient color with index %d", indx);
}
return indx;
}
//______________________________________________________________________
bool add_ellipse(const Double_t xC, const Double_t yC, const Double_t r)
{
if (newColor == -1) {
::Error("add_ellipse", "failed to find a new color index for a gradient fill");
return false;
}
TEllipse *const newEllipse = new TEllipse(xC, yC, r, r);
newEllipse->SetFillColor(newColor);
newEllipse->Draw();
return true;
}
//______________________________________________________________________
void radialgradients(bool gl = true)
{
gRandom->SetSeed(4357);
auto cnv = new TCanvas("radialgradients", "radial gradients", 800, 800);
if (!cnv->UseGL() && !cnv->IsWeb())
::Warning("radialgradients",
"This macro requires either OpenGL or Web canvas to correctly handle gradient colors");
for (unsigned i = 0; i < 100; ++i)
}
short Color_t
Definition RtypesCore.h:85
double Double_t
Definition RtypesCore.h:59
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Definition TError.cxx:185
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
Definition TError.cxx:229
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
#define gROOT
Definition TROOT.h:406
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
R__EXTERN TStyle * gStyle
Definition TStyle.h:442
Color * colors
Definition X3DBuffer.c:21
The Canvas class.
Definition TCanvas.h:23
static Int_t GetRadialGradient(Double_t r, const std::vector< Int_t > &colors, const std::vector< Double_t > &positions={})
Static function: Returns the radial gradient color number corresponding to specified parameters.
Definition TColor.cxx:2291
Draw Ellipses.
Definition TEllipse.h:23
void SetRadialGradient(const Point &center, Double_t radius)
Set radial gradient.
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Definition TRandom.cxx:615
Double_t Rndm() override
Machine independent random number generator.
Definition TRandom.cxx:559
virtual UInt_t Integer(UInt_t imax)
Returns a random integer uniformly distributed on the interval [ 0, imax-1 ].
Definition TRandom.cxx:361
void SetCanvasPreferGL(Bool_t prefer=kTRUE)
Definition TStyle.h:345
const Int_t n
Definition legend1.C:16
Authors
Timur Pocheptsov, Sergey Linev

Definition in file radialgradients.C.