code for trough diagram

> circarr:=proc(center,start,
angle,text,textsize,textoffset,colr)
local arc,dir, HEAD, V1,V2,V3,v1,v2,v3,arccenter,
txt,tmp,rad,shift,head:
tmp:=evalf(start-center):
rad:=sqrt(tmp[1]^2+tmp[2]^2):
shift:=argument(tmp[1]+tmp[2]*I):
if evalf(shift) < 0 then shift:=shift+2*Pi: fi:
arc:=plot({[start],[center],[center[1]+rad*cos(shift+t),
center[2]+rad*sin(shift+t),t=0..angle]},
thickness=3,color=colr)
dir:=.05*rad*(-sin(angle+shift)+I*cos(angle+shift)):
HEAD:=rad*[cos(angle+shift),sin(angle+shift)]+center:
if evalf(angle)<0 then dir:=-dir fi:
dir:=evalc(dir):
v1:=evalc(dir*(I-1)):v2:=evalc(dir*(-I-1)):v3:=0:
V1:=2*[Re(v1),Im(v1)]:
V2:=2*[Re(v2),Im(v2)]:
V3:=2*[Re(v3),Im(v3)]:
arccenter:=center+(rad/2)*[cos(angle/2+shift),
sin(angle/2+shift)]:
txt:=plots[textplot]([arccenter[1]+textoffset,
arccenter[2],text],font=[TIMES,BOLD,textsize]):
head:=plots[polygonplot]([V1+HEAD,V2+HEAD,V3+HEAD],
color=colr):
plots[display]({arc,head,txt},
scaling=constrained):
end:

> AA:=[-2,2]:BB:=[-1,0]:CC:=[1,0]: DD:=[2,2]:

> front:=[AA,BB,CC,DD]:

> top:=[AA,DD,DD+[10,4],AA+[10,4]]:

> leftside:=[CC,CC+[10,4], DD+[10,4], DD]:

> hidn:=plot({[BB,BB+[10,4]],
[BB+[10,4],CC+[10,4]],[BB+[10,4],AA+[10,4]]},color=black,
linestyle=3,thickness=2):

> nothidn:=plots[polygonplot]({front,top,leftside},
style=line,color=black,thickness=2):
txt:=plots[textplot]({[12,5,`1`],[0,-.3,`1`],
[-1.7,.7,`1`],[8,2.5,`10`]},font=[TIMES,BOLD,16]):
vertdotlines:=plot({[[1,0],[1,1.8]],[[-1,0],[-1,1.8]]},
linestyle=3,thickness=3):
betaa:=circarr([-1,0],[-1,1.5], Pi/7,`beta`,14, .5,blue):
betab:=circarr([1,0],[1,1.5], -Pi/7,`beta`,14, .5,blue):
plots[display]({betab,betaa,vertdotlines,hidn,nothidn,txt},scaling=constrained,axes=normal);