Positionner un label en précisant un angle de position (cf PStricks)

Suite à une demande sur la liste AmiTeX, voici la réponse en Metapost.

aldebert.mp [ source brut ]

 vardef Label(expr TeXt,PoInT,AnGlE)=
 label(TeXt,point(arctime((AnGlE/360)*arclength (fullcircle scaled (5*labeloffset) shifted PoInT))
     of (fullcircle scaled (5*labeloffset) shifted PoInT)) of (fullcircle scaled (5*labeloffset)
     shifted PoInT))
 enddef;
 
 %d'après plain.mp
 vardef DotLabel(expr TeXt,PoInT,AnGlE)=
   Label(TeXt,PoInT,AnGlE);
   draw PoInT withpen pencircle scaled dotlabeldiam;
 enddef;
 
 
Conversion au format PDF de aldebert.1
 beginfig(1);
   pair A,B,C,D;
   A=(1cm,1cm);
   B=(3cm,1cm);
   C=(2cm,4cm);
   D-C=B-A;
   drawoptions(withcolor 0.9*white);
   draw (fullcircle scaled (5*labeloffset) shifted A);
   draw (fullcircle scaled (5*labeloffset) shifted B);
   draw (fullcircle scaled (5*labeloffset) shifted C);
   draw (fullcircle scaled (5*labeloffset) shifted D);
   drawoptions();
   draw A--B;
   drawarrow C--D;
   Label(btex A etex,A,60);
   Label(btex B etex,B,125);
   DotLabel(btex C etex,C,210);
   DotLabel(btex D etex,D,300);
 endfig;
 end