summaryrefslogtreecommitdiff
path: root/graphics/metapost/contrib/macros/txp/txp.mp
blob: 58f878d3d927f6debb6f30c8c5adb5720178afbb (plain)
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;