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

Detailed Description

View in nbviewer Open in SWAN Generate small triangles randomly in the canvas.

Each triangle has a unique id and a random color in the color palette

root > .x triangles.C

Then click on any triangle. A message showing the triangle number and its color will be printed.

void triangles(Int_t ntriangles=50) {
TCanvas *c1 = new TCanvas("c1","triangles",10,10,700,700);
Double_t dx = 0.2; Double_t dy = 0.2;
Double_t x[4],y[4];
Int_t ci;
for (Int_t i=0;i<ntriangles;i++) {
x[0] = r.Uniform(.05,.95); y[0] = r.Uniform(.05,.95);
x[1] = x[0] + dx*r.Rndm(); y[1] = y[0] + dy*r.Rndm();
x[2] = x[1] - dx*r.Rndm(); y[2] = y[1] - dy*r.Rndm();
x[3] = x[0]; y[3] = y[0];
TPolyLine *pl = new TPolyLine(4,x,y);
pl->SetUniqueID(i);
ci = ncolors*r.Rndm();
c = gROOT->GetColor(TColor::GetColorPalette(ci));
c->SetAlpha(r.Rndm());
pl->SetFillColor(ci);
pl->Draw("f");
}
c1->AddExec("ex","TriangleClicked()");
}
void TriangleClicked() {
//this action function is called whenever you move the mouse
//it just prints the id of the picked triangle
//you can add graphics actions instead
int event = gPad->GetEvent();
if (event != 11) return; //may be comment this line
TObject *select = gPad->GetSelected();
if (!select) return;
if (select->InheritsFrom(TPolyLine::Class())) {
TPolyLine *pl = (TPolyLine*)select;
printf("You have clicked triangle %d, color=%d\n",
pl->GetUniqueID(),pl->GetFillColor());
}
}
ROOT::R::TRInterface & r
Definition Object.C:4
#define c(i)
Definition RSha256.hxx:101
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
#define gROOT
Definition TROOT.h:404
R__EXTERN TStyle * gStyle
Definition TStyle.h:413
#define gPad
virtual Color_t GetFillColor() const
Return the fill area color.
Definition TAttFill.h:30
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:37
The Canvas class.
Definition TCanvas.h:23
The color creation and management class.
Definition TColor.h:19
static Int_t GetColorPalette(Int_t i)
Static function returning the color number i in current palette.
Definition TColor.cxx:1449
Mother of all ROOT objects.
Definition TObject.h:41
virtual UInt_t GetUniqueID() const
Return the unique object id.
Definition TObject.cxx:447
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition TObject.cxx:515
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
Definition TObject.cxx:777
Defined by an array on N points in a 2-D space.
Definition TPolyLine.h:23
virtual void Draw(Option_t *option="")
Draw this polyline with its current attributes.
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Definition TStyle.cxx:1122
return c1
Definition legend1.C:41
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Author
Rene Brun

Definition in file triangles.C.