numeric theta, psi; psi = 28; theta = 50;
pair P, Q, H, N, M, T, L; P = (4, 3) scaled u;
path ell, tee, arc;
ell = (left--right) scaled 10u rotated theta shifted P cutbefore xx;
tee = (left--right) scaled 10u rotated psi shifted P cutbefore xx;
arc = subpath (1.6, 3.2) of halfcircle rotated -180 shifted 1/2 up
scaled 10u shifted P rotatedabout(P, psi);
Q = ell intersectionpoint subpath (1.5, 3) of arc;
H = P + whatever * dir psi;
xpart H = xpart Q = xpart M; ypart M = ypart N = 0;
xpart N = xpart P;
L = point 0 of ell;
T = point 0 of tee;
% now we can get with the drawing
draw arc withcolor 1/2 red;
draw P--N dashed withdots scaled 1/2;
draw Q--M dashed withdots scaled 1/2;
drawarrow xx; label.rt("$x$", point 1 of xx);
drawarrow yy; label.top("$y$", point 1 of yy);
drawoptions(withcolor 2/3 blue);
draw fullcircle scaled 32 shifted T cutafter tee;
draw fullcircle scaled 28 shifted L cutafter ell;
label("$\psi$", 24 right rotated 1/2 psi shifted T);
label("$\theta$", 20 right rotated 1/2 theta shifted L);
drawoptions();
% draw the lines trimmed neatly
path invisible_boundary;
z1 = point .95 of xx;
z2 = point .95 of yy;
invisible_boundary = z1--(x1,y2)--z2;
draw ell cutafter invisible_boundary;
draw tee cutafter invisible_boundary;