code for labeledarrow

> labeledarrow:=proc(tail,head,scalefactors, text,txtshift,
size, colr) local txt,tmp,nrm,dir,cntr,txtat,dirperp:
dir:=head-tail:
nrm:=sqrt( dir[1]^2+dir[2]^2):
dir:=expand((1/nrm)*dir):
dirperp:=[dir[2],-dir[1]]:
cntr:=.5*(head+tail):
txtat:=cntr+txtshift[1]* dir+txtshift[2]*dirperp:
tmp:=plottools[arrow](tail, head, scalefactors[1]*.01*nrm,scalefactors[2]*.05*nrm,
scalefactors[3]*.05,color=colr):
txt:=plots[textplot]([txtat[1],txtat[2],text],
font=[TIMES,BOLD,size]): plots[display]({tmp,txt});
end: