\documentclass[border=0mm]{standalone} \usepackage{luamplib} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} color TR, TB, TG; TB = (.2,.2,.7); TR = (0.54,0,0); TG = (0, 0.44, 0); path xx, yy; xx = (left--right) scaled 144; yy = (down--up) scaled 89; ahangle := 30; picture P[]; P0 = image(drawarrow xx withcolor 1/2; drawarrow yy withcolor 1/2); P1 = image(draw P0; path c, a; c = fullcircle scaled 4cm shifted (34, 21); a = point 1 of c -- center c; draw c withcolor TR; draw fullcircle scaled 3 shifted (34,21); label.lrt("$(34,21)$", (34,21)); drawdblarrow a; label.ulft("2 cm", point 1/2 of a); ); vardef circle_through(expr A, B, C) = save o; pair o; o = whatever * (A-B) rotated 90 shifted 1/2[A,B] = whatever * (B-C) rotated 90 shifted 1/2[B,C]; fullcircle scaled 2 abs (A-o) shifted o enddef; P2 = image(draw P0; pair A, B, C; A = (-21, -13); B = (58, 21); C = (89, -34); path c[]; c1 = fullcircle scaled 2 abs(A-B) shifted A; c2 = fullcircle scaled abs(A-B) shifted 1/2[A, B]; c3 = circle_through(A, B, C); draw c1 withcolor TR; label.ulft("I", point 3 of c1) withcolor TR; draw A -- B dashed withdots scaled 1/4 withpen pencircle scaled 1/4 withcolor TB; draw c2 withcolor TB; label.ulft("II", point 3 of c2) withcolor TB; draw fullcircle scaled 2 shifted 1/2[A, B] withcolor TB; draw c3 withcolor TG; label.urt("III", point 1 of c3) withcolor TG; dotlabel.llft("$A$", A); dotlabel.urt("$B$", B); dotlabel.lrt("$C$", C); ); beginfig(1); labeloffset := 10; label.top(P1, origin); label.bot(P2, origin); endfig; \end{mplibcode} \end{document}