#include <cassert>
#include <vector>
namespace {
typedef std::vector<Double_t> vector_type;
typedef vector_type::size_type size_type;
void create_flower(vector_type &xs, vector_type &ys, size_type nPoints,
Double_t r)
{
assert(nPoints > 100 && "create_flower, number of points is too small");
xs.resize(nPoints + 1);
ys.resize(nPoints + 1);
for (size_type i = 0; i <= nPoints; ++i) {
const Double_t rr =
r * (1 +
TMath::Sin(11 * u / 5)) - 4 * p4 * p4 * p4 * p4 * p8 * p8 * p8 * p8 * p8 * p8 * p8 * p8;
}
}
}
void flower()
{
::Error(
"flower",
"failed to create custom colors");
return;
}
TCanvas *
const cnv =
new TCanvas(
"Chrysanthemum",
"Chrysanthemum", 900, 900);
::Error(
"flower",
"This macro requires OS X version of ROOT with cocoa enabled");
delete cnv;
return;
}
vector_type xs, ys;
create_flower(xs, ys, 300, 6);
new TColor(indices[0], 0., 0., 0.5,
"custom_blue", 0.7);
create_flower(xs, ys, 500000, 8);
new TColor(indices[1], 0.5, 0., 0.5,
"custom_purple", 0.5);
create_flower(xs, ys, 100000, 10);
new TColor(indices[2], 1., 0., 0.4,
"custom_magenta", 0.2);
}
void Error(const char *location, const char *msgfmt,...)
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
The color creation and management class.
A Graph is a graphics object made of two arrays X and Y with npoints each.
virtual void SetName(const char *name="")
Set graph name.
virtual void SetTitle(const char *title="")
Set graph title.
A TMultiGraph is a collection of TGraph (or derived) objects.
virtual void Add(TGraph *graph, Option_t *chopt="")
Add a new graph to the list of graphs.
virtual void Draw(Option_t *chopt="")
Draw this multigraph with its current attributes.
unsigned FindFreeCustomColorIndices(Color_t(&indices)[N])