33 const Double_t basicColors[][4] =
63 const unsigned nBasicColors =
sizeof basicColors /
sizeof basicColors[0];
66 Color_t CreateRandomGradientFill()
68 const Double_t *
const fromRGBA = basicColors[(std::rand() % (nBasicColors / 2))];
70 const Double_t *
const toRGBA = basicColors[nBasicColors / 2 + (std::rand() % (nBasicColors / 2))];
72 const Double_t locations[] = {0., 1.};
73 const Double_t rgbas[] = {fromRGBA[0], fromRGBA[1], fromRGBA[2], fromRGBA[3],
74 toRGBA[0], toRGBA[1], toRGBA[2], toRGBA[3]};
77 if (ROOT::GLTutorials::FindFreeCustomColorIndices(idx) != 1)
80 TRadialGradient *
const grad =
new TRadialGradient(idx[0], 2, locations, rgbas);
82 grad->SetRadialGradient(TColorGradient::Point(0.5, 0.5), 0.5);
88 bool add_ellipse(
const Double_t xC,
const Double_t yC,
const Double_t r)
90 assert(gPad !=
nullptr &&
"add_ellipse, no pad to add ellipse");
92 const Color_t newColor = CreateRandomGradientFill();
94 ::Error(
"add_ellipse",
"failed to find a new color index for a gradient fill");
98 TEllipse *
const newEllipse =
new TEllipse(xC, yC, r, r);
99 newEllipse->SetFillColor(newColor);
108 void radialgradients()
110 gRandom->SetSeed(4357);
112 gStyle->SetCanvasPreferGL(kTRUE);
114 TCanvas *
const cnv =
new TCanvas(
"radial gradients",
"radial gradients", 800, 800);
116 ::Error(
"radialgradients",
"this demo OpenGL");
121 for (
unsigned i = 0; i < 100; ++i)
122 if (!add_ellipse(gRandom->Rndm(), gRandom->Rndm(), 0.5 * gRandom->Rndm()))