update
This commit is contained in:
parent
836fe7434f
commit
8b622c0ef8
1 changed files with 60 additions and 12 deletions
|
@ -1,12 +1,25 @@
|
|||
|
||||
vardef inmouthsize(expr pos,size) =
|
||||
fullcircle xscaled 0.6 scaled size shifted pos
|
||||
enddef;
|
||||
vardef outmouthsize(expr pos,size) =
|
||||
(subpath (0,4) of fullcircle rotated -90) xscaled 0.6 scaled size shifted pos
|
||||
enddef;
|
||||
vardef hiddenoutmouthsize(expr pos,size) =
|
||||
(subpath (4,8) of fullcircle rotated -90) xscaled 0.6 scaled size shifted pos
|
||||
enddef;
|
||||
vardef inmouth(expr pos) =
|
||||
fullcircle xscaled 0.6 scaled 2u shifted pos
|
||||
inmouthsize(pos,2u)
|
||||
enddef;
|
||||
vardef outmouth(expr pos) =
|
||||
(subpath (0,4) of fullcircle rotated -90) xscaled 0.6 scaled 2u shifted pos
|
||||
outmouthsize(pos,2u)
|
||||
enddef;
|
||||
vardef hiddenoutmouth(expr pos) =
|
||||
(subpath (4,8) of fullcircle rotated -90) xscaled 0.6 scaled 2u shifted pos
|
||||
hiddenoutmouthsize(pos,2u)
|
||||
enddef;
|
||||
def drawoutmouth(expr pos) =
|
||||
draw outmouth(pos);
|
||||
draw hiddenoutmouth(pos) dashed evely;
|
||||
enddef;
|
||||
|
||||
def drawtube(expr pos) =
|
||||
|
@ -15,10 +28,8 @@ def drawtube(expr pos) =
|
|||
pair midin,midout;
|
||||
midin := pos;
|
||||
midout := pos shifted (gu,0);
|
||||
draw outmouth(midin);
|
||||
draw hiddenoutmouth(midin) dashed evenly;
|
||||
draw outmouth(midout);
|
||||
draw hiddenoutmouth(midout) dashed evenly;
|
||||
drawoutmouth(midin);
|
||||
drawoutmouth(midout);
|
||||
|
||||
save topin,topout,botin,botout;
|
||||
pair topin,topout,botin,botout;
|
||||
|
@ -68,16 +79,53 @@ def drawtwotubeslabel(expr ptop,pbot,pout,l) =
|
|||
endgroup;
|
||||
enddef;
|
||||
def drawbegintube (expr pos) =
|
||||
draw (subpath (4,8) of fullcircle rotated -90) scaled 2u shifted pos;
|
||||
draw (subpath (4,8) of fullcircle rotated -90) scaled 2u shifted pos shifted (-2u,0);
|
||||
draw (pos shifted (-2u,u)){right}..{right}(pos shifted (0,u));
|
||||
draw (pos shifted (-2u,-u)){right}..{right}(pos shifted (0,-u));
|
||||
draw outmouth(pos);
|
||||
draw hiddenoutmouth(pos) dashed evenly;
|
||||
enddef;
|
||||
|
||||
def drawbegintubelabel(expr pos,l) =
|
||||
drawbegintube(pos);
|
||||
label(l,pos);
|
||||
label(l,pos shifted (-1.5u,0));
|
||||
enddef;
|
||||
|
||||
drawbegintubelabel((0,gu),btex $37$ etex);
|
||||
drawtubelabel(origin,btex $+$ etex);
|
||||
drawtwotubeslabel((0,-gu),(0,-2gu),(gu,-1.5gu),btex $+$ etex);
|
||||
def drawtube(expr pos) =
|
||||
begingroup;
|
||||
save midin,midout;
|
||||
pair midin,midout;
|
||||
midin := pos;
|
||||
midout := pos shifted (gu,0);
|
||||
draw outmouth(midin);
|
||||
draw hiddenoutmouth(midin) dashed evenly;
|
||||
draw outmouth(midout);
|
||||
draw hiddenoutmouth(midout) dashed evenly;
|
||||
|
||||
save topin,topout,botin,botout;
|
||||
pair topin,topout,botin,botout;
|
||||
topin=pos shifted (0,u);
|
||||
topout=topin shifted (gu,0);
|
||||
botin=pos shifted (0,-u);
|
||||
botout=botin shifted (gu,0);
|
||||
draw topin -- topout;
|
||||
draw botin -- botout;
|
||||
endgroup;
|
||||
enddef;
|
||||
def drawtubelabel(expr pos,l) =
|
||||
drawtube(pos);
|
||||
label(l,pos shifted (.5gu,0));
|
||||
enddef;
|
||||
|
||||
pair pos;
|
||||
pos:=(gu,gu);
|
||||
drawbegintubelabel(pos shifted (-gu,.5gu),btex $37$ etex);
|
||||
drawbegintubelabel(pos shifted (-gu,-.5gu),btex $\mathtt{"foo"}$ etex);
|
||||
drawtwotubeslabel(pos shifted (0,.5gu), pos shifted (0,-.5gu), pos shifted (gu,0),btex $+$ etex);
|
||||
|
||||
z0=origin;
|
||||
drawbegintubelabel(z0,btex $37$ etex);
|
||||
drawtwotubeslabel(z0, z0 shifted (0,-gu), z0 shifted (gu,-0.5gu),btex $+$ etex);
|
||||
|
||||
drawtubelabel(z0 shifted (2gu,-.5gu),btex $37+$ etex);
|
||||
|
||||
|
|
Loading…
Reference in a new issue