\documentclass{standalone} \usepackage{luamplib} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} input eggs-common numeric r, a, b, t; a = 60; b = 45; r = a ++ b; pair p, q; p = -q = (b, 0); path base, cap, egg; base = subpath (4, 8) of fullcircle scaled 2(2r-b); cap = subpath (0, 4) of fullcircle scaled 2r shifted (0, a) cutbefore ((b, 0) -- (b, 2r)) cutafter ((-b, 0) -- (-b, 2r)); egg = point 4 of base {up} .. cap .. {down} base & cycle; % more naturally "base {up} .. cap .. {down} & cycle" % but then point 0 would not be at 3 o'clock beginfig(1); fill egg withpen pencircle scaled 2 withcolor eggshell; picture P; P = currentpicture; fill origin -- (-b, 0) -- (0, a) -- cycle withcolor light_eggshell; drawoptions(withpen pencircle scaled 1/4 withcolor 1/2); label.top("$\scriptstyle 3$", (-1/2b, 0)); label.lft("$\scriptstyle 4$", (0, 1/2a)); label.ulft("$\scriptstyle 5$", 1/2[(-b, 0), (0, a)]); draw fullcircle scaled 2(2r-b); draw origin withpen pencircle scaled 2; draw fullcircle scaled 2r shifted (0, a); draw (0, a) withpen pencircle scaled 2; draw p -- subpath (3, 4) of egg -- cycle; draw p withpen pencircle scaled 2; draw q -- subpath (0, 1) of egg -- cycle; draw q withpen pencircle scaled 2; draw numbered_points(egg); drawoptions(); draw P shifted 240 right; endfig; \end{mplibcode} \end{document}