Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches

Detailed Description

View in nbviewer Open in SWAN
This macro produces the flowchart of TFormula::Eval.

void eval()
{
TCanvas *c1 = new TCanvas("c1");
c1->Range(0, 0, 20, 10);
TPaveLabel *pt1 = new TPaveLabel(0.2, 4, 3, 6, "Eval");
pt1->SetTextSize(0.5);
pt1->SetFillColor(42);
pt1->Draw();
TPaveText *pt2 = new TPaveText(4.5, 4, 7.8, 6);
pt2->Draw();
TText *t1 = pt2->AddText("Read Operator");
TText *t2 = pt2->AddText("number i");
TPaveText *pt3 = new TPaveText(9, 3.5, 17.5, 6.5);
TText *t4 = pt3->AddText("Apply Operator to current stack values");
TText *t5 = pt3->AddText("Example: if operator +");
TText *t6 = pt3->AddText("value[i] += value[i-1]");
t4->SetTextAlign(22);
t5->SetTextAlign(22);
t6->SetTextAlign(22);
t5->SetTextColor(4);
t6->SetTextColor(2);
pt3->Draw();
TPaveLabel *pt4 = new TPaveLabel(4, 0.5, 12, 2.5, "return result = value[i]");
pt4->Draw();
TArrow *ar1 = new TArrow(6, 4, 6, 2.7, 0.02, "|>");
ar1->Draw();
TText *t7 = new TText(6.56, 2.7, "if i = number of stack elements");
t7->SetTextSize(0.04);
t7->Draw();
ar1->DrawArrow(6, 8, 6, 6.2, 0.02, "|>");
TLine *l1 = new TLine(12, 6.6, 12, 8);
l1->Draw();
l1->DrawLine(12, 8, 6, 8);
ar1->DrawArrow(3, 5, 4.4, 5, 0.02, "|>");
ar1->DrawArrow(7.8, 5, 8.9, 5, 0.02, "|>");
}
Draw all kinds of Arrows.
Definition TArrow.h:29
The Canvas class.
Definition TCanvas.h:23
Use the TLine constructor to create a simple line.
Definition TLine.h:22
A Pave (see TPave) with a text centered in the Pave.
Definition TPaveLabel.h:20
A Pave (see TPave) with text, lines or/and boxes inside.
Definition TPaveText.h:21
Base class for several text objects.
Definition TText.h:22
return c1
Definition legend1.C:41
auto * t1
Definition textangle.C:20
Author
Rene Brun

Definition in file eval.C.