10 void table(Float_t x1, Float_t x2, Float_t yrange, TText *t,
const char **symbol, Bool_t octal);
14 const char *symbol1[] =
15 {
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
16 "O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
17 "0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
18 ".",
",",
"+",
"-",
"*",
"/",
"=",
"(",
")",
"{",
"}",
"END"};
20 const char *symbol2[] =
21 {
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
22 "o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
23 ":",
";",
"@",
"\\",
"_",
"|",
"%",
24 "@'",
"<",
">",
"[",
"]",
"\42",
"@\43",
"@\136",
25 "@\77",
"@\41",
"@&",
"$",
"@\176",
" ",
"END"};
27 const char *symbol3[] =
28 {
"\241",
"\242",
"\243",
"\244",
"\245",
"\246",
"\247",
"\250",
29 "\251",
"\252",
"\253",
"\254",
"\255",
"\256",
"\257",
"\260",
30 "\261",
"\262",
"\263",
"\264",
"\265",
"\266",
"\267",
"\270",
31 "\271",
"\272",
"\273",
"\274",
"\275",
"\276",
"\277",
"\300",
32 "\301",
"\302",
"\303",
"\304",
"\305",
"\306",
"\307",
"\310",
33 "\311",
"\312",
"\313",
"\314",
"\315",
"\316",
"\317",
"END"};
35 const char *symbol4[] =
36 {
"\321",
"\322",
"\323",
"\324",
"\325",
"\326",
"\327",
"\330",
37 "\331",
"\332",
"\333",
"\334",
"\335",
"\336",
"\337",
"\340",
38 "\341",
"\342",
"\343",
"\344",
"\345",
"\346",
"\347",
"\340",
39 "\351",
"\352",
"\353",
"\354",
"\355",
"\356",
"\357",
"\360",
40 "\361",
"\362",
"\363",
"\364",
"\365",
"\366",
"\367",
"\370",
41 "\371",
"\372",
"\373",
"\374",
"\375",
"\376",
"\377",
"END"};
43 const char *symbol5[] =
44 {
"\177",
"\200",
"\201",
"\202",
"\203",
"\204",
"\205",
"\206",
45 "\207",
"\210",
"\211",
"\212",
"\213",
"\214",
"\215",
"\216",
46 "\217",
"\220",
"\221",
"\222",
"\223",
"\224",
"\225",
"\226",
47 "\227",
"\230",
"\231",
"\232",
"\233",
"\234",
"\235",
"\236",
53 Int_t h = w*yrange/xrange;
55 TCanvas *c1 =
new TCanvas(
"c1",
"c1",200,10,w,h);
56 c1->Range(0,0,xrange,yrange);
58 TText *t =
new TText(0,0,
"a");
63 table(0.5,0.5*xrange-0.5,yrange,t,symbol1,0);
64 table(0.5*xrange+0.5,xrange-0.5,yrange,t,symbol2,0);
65 TText *tlabel =
new TText(0,0,
"a");
66 tlabel->SetTextFont(72);
67 tlabel->SetTextSize(0.018);
68 tlabel->SetTextAlign(22);
69 tlabel->DrawText(0.5*xrange,1.3,
70 "Input characters are standard keyboard characters");
73 c1->Print(
"pstable1.ps");
75 TCanvas *c2 =
new TCanvas(
"c2",
"c2",220,20,w,h);
76 c2->Range(0,0,xrange,yrange);
78 table(0.5,0.5*xrange-0.5,yrange,t,symbol3,1);
79 table(0.5*xrange+0.5,xrange-0.5,yrange,t,symbol4,1);
80 tlabel->DrawText(0.5*xrange,1.3,
81 "Input characters using backslash and octal numbers");
84 c2->Print(
"pstable2.ps");
86 TCanvas *c3 =
new TCanvas(
"c3",
"c3",240,20,w,h);
87 c3->Range(0,0,xrange,yrange);
89 table(0.5,0.5*xrange-0.5,yrange,t,symbol5,1);
90 tlabel->DrawText(0.5*xrange,1.3,
91 "Input characters using backslash and octal numbers");
94 c3->Print(
"pstable3.ps");
96 void table(Float_t x1, Float_t x2, Float_t yrange, TText *t,
97 const char **symbol, Bool_t octal)
101 for (i=0;i<1000;i++) {
102 if (!strcmp(symbol[i],
"END"))
break;
106 Float_t y2 = yrange - 0.5;
107 Float_t dx = (x2-x1)/5;
108 Float_t dy = (y2 - 1 -y1)/(n+1);
109 Float_t y = y2 - 1 - 0.7*dy;
110 Float_t xc0 = x1 + 0.5*dx;
111 Float_t xc1 = xc0 + dx;
112 Float_t xc2 = xc1 + dx;
113 Float_t xc3 = xc2 + dx;
114 Float_t xc4 = xc3 + dx;
115 TLine *line =
new TLine();
116 line->DrawLine(x1,y1,x1,y2);
117 line->DrawLine(x1,y1,x2,y1);
118 line->DrawLine(x1,y2,x2,y2);
119 line->DrawLine(x2,y1,x2,y2);
120 line->DrawLine(x1,y2-1,x2,y2-1);
121 line->DrawLine(x1+ dx,y1,x1+ dx,y2);
122 line->DrawLine(x1+2*dx,y1,x1+2*dx,y2);
123 line->DrawLine(x1+3*dx,y1,x1+3*dx,y2);
124 line->DrawLine(x1+4*dx,y1,x1+4*dx,y2);
125 TText *tit =
new TText(0,0,
"a");
126 tit->SetTextSize(0.015);
127 tit->SetTextFont(72);
128 tit->SetTextAlign(22);
129 tit->DrawText(xc0,y2-0.6,
"Input");
130 tit->DrawText(xc1,y2-0.6,
"Roman");
131 tit->DrawText(xc2,y2-0.6,
"Greek");
132 tit->DrawText(xc3,y2-0.6,
"Special");
133 tit->DrawText(xc4,y2-0.6,
"Zapf");
137 unsigned char value = *symbol[i];
138 sprintf(text,
"@\\ %3o",value);
140 strcpy(text,symbol[i]);
142 t->DrawText(xc0,y,text);
143 sprintf(text,
"%s",symbol[i]);
144 t->DrawText(xc1,y,text);
145 sprintf(text,
"`%s",symbol[i]);
146 t->DrawText(xc2,y,text);
147 sprintf(text,
"'%s",symbol[i]);
148 t->DrawText(xc3,y,text);
149 sprintf(text,
"~%s",symbol[i]);
150 t->DrawText(xc4,y,text);