1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
def txp(expr s, pat, es, ef, hi, tr, se, lc, th, hig) =
picture pt ,pic; string sp, ps; path pi;
truecorners:=1; long[0]:=tr;
pi := pat scaled ef shifted(-xpart center pat*(ef-1),-ypart center pat*(ef-1));
for i = length s step -1 until 1:
ps:=substring(0,i) of s;
pic:=thelabel(ps,(0,0)) scaled es;
long[i]:=((2+se)*(xpart urcorner pic) + tr);
endfor;
for i=0 upto (length s) - 1:
sp:= substring(i,i+1) of s;
if sp <> " ":
x:= (long[i]+long[i+1])/2;
pt:= thelabel(sp ,(0,0)) scaled es shifted (x,0);
for j = 16 upto 243:
if sp = char(j): k:=j; fi; endfor;
h:=es*(alt[k] + hi);
draw pt shifted (-xpart pt,h) rotated angle direction arctime x of pi of pi shifted point arctime xpart pt of pi of pi withcolor lc;
fi; endfor;
if th <> 0:
pickup pencircle scaled th;
draw pi withcolor red;
fi;
enddef;
|