verbatimtex \magnification=\magstep1 etex u=1cm; beginfig(1); z0 = (0,0); % z0 is point A x10 = x0; y10 = y0 + 5u; % z10 is point A x11 = x10 + 2u; y11 = y10; % z11 is endpoint x101 = x10; y101 = y10 + 0.15 u; % z101 is top stroke at A z102 - z10 = z10 - z101; % z102 is bottom stroke at A x111 = x11; y111 = y11 + 0.15 u; % z111 is top stroke at endpoint z112 - z11 = z11 - z111; % z112 is bottom stroke at endpoint draw z10--z11; draw z101--z102; draw z111--z112; label.lft(btex ${\rm A}$ etex, z10); x20 = x0; y20 = y0 + 4u; % z20 is point B x21 = x20 + 3u; y21 = y20; % z21 is point C x22 = x20 + 3.5u; y22 = y20; % z22 is point M x201 = x20; y201 = y20 + 0.15 u; % z201 is top stroke at B z202 - z20 = z20 - z201; % z202 is bottom stroke at B x211 = x21; y211 = y21 + 0.15 u; % z211 is top stroke at C z212 - z21 = z21 - z211; % z212 is bottom stroke at C x221 = x22; y221 = y22 + 0.15 u; % z221 is top stroke at M z222 - z22 = z22 - z221; % z222 is bottom stroke at M draw z20--z22; draw z201--z202; draw z211--z212; draw z221--z222; label.lft(btex ${\rm B}$ etex, z20); label.bot(btex ${\rm C}$ etex, z212); label.lrt(btex ${\rm M}$ etex, z222); x30 = x0; y30 = y0 + 3u; % z30 is point D x31 = x30 + 3.5u; y31 = y30; % z31 is point E x32 = x30 + 4.5u; y32 = y30; % z32 is point N x301 = x30; y301 = y30 + 0.15 u; % z301 is top stroke at D z302 - z30 = z30 - z301; % z302 is bottom stroke at D x311 = x31; y311 = y31 + 0.15 u; % z311 is top stroke at E z312 - z31 = z31 - z311; % z312 is bottom stroke at E x321 = x32; y321 = y32 + 0.15 u; % z321 is top stroke at N z322 - z32 = z32 - z321; % z322 is bottom stroke at N draw z30--z32; draw z301--z302; draw z311--z312; draw z321--z322; label.lft(btex ${\rm D}$ etex, z30); label.bot(btex ${\rm E}$ etex, z312); label.lrt(btex ${\rm N}$ etex, z322); x40 = x0; y40 = y0 + 2u; % z40 is point F x41 = x40 + 4u; y41 = y40; % z41 is point G x42 = x40 + 4.5u; y42 = y40; % z42 is point R x43 = x40 + 5u; y43 = y40; % z43 is point S x44 = x40 + 5.5u; y44 = y40; % z44 is point O x401 = x40; y401 = y40 + 0.15 u; % z401 is top stroke at F z402 - z40 = z40 - z401; % z402 is bottom stroke at F x411 = x41; y411 = y41 + 0.15 u; % z411 is top stroke at G z412 - z41 = z41 - z411; % z412 is bottom stroke at G x421 = x42; y421 = y42 + 0.15 u; % z421 is top stroke at R z422 - z42 = z42 - z421; % z422 is bottom stroke at R x431 = x43; y431 = y43 + 0.15 u; % z431 is top stroke at S z432 - z43 = z43 - z431; % z432 is bottom stroke at S x441 = x44; y441 = y44 + 0.15 u; % z441 is top stroke at O z442 - z44 = z44 - z441; % z442 is bottom stroke at O draw z40--z44; draw z401--z402; draw z411--z412; draw z421--z422; draw z431--z432; draw z441--z442; label.lft(btex ${\rm F}$ etex, z40); label.bot(btex ${\rm G}$ etex, z412); label.bot(btex ${\rm R}$ etex, z422); label.bot(btex ${\rm S}$ etex, z432); label.bot(btex ${\rm O}$ etex, z442); x50 = x0; y50 = y0 + u; % z50 is point H x51 = x50 + 5u; y51 = y50; % z51 is point I x52 = x50 + 6.5u; y52 = y50; % z52 is point P x501 = x50; y501 = y50 + 0.15 u; % z501 is top stroke at H z502 - z50 = z50 - z501; % z502 is bottom stroke at H x511 = x51; y511 = y51 + 0.15 u; % z511 is top stroke at I z512 - z51 = z51 - z511; % z512 is bottom stroke at I x521 = x52; y521 = y52 + 0.15 u; % z521 is top stroke at P z522 - z52 = z52 - z521; % z522 is bottom stroke at P draw z50--z52; draw z501--z502; draw z511--z512; draw z521--z522; label.lft(btex ${\rm H}$ etex, z50); label.bot(btex ${\rm I}$ etex, z512); label.bot(btex ${\rm P}$ etex, z522); x60 = x0; y60 = y0; % z60 is point K x61 = x60 + 5.5u; y61 = y60; % z61 is point L x62 = x60 + 6u; y62 = y60; % z62 is point T x63 = x60 + 6.5u; y63 = y60; % z63 is point V x64 = x60 + 7u; y64 = y60; % z64 is point W x65 = x60 + 7.5u; y65 = y60; % z63 is point X x66 = x60 + 8u; y66 = y60; % z64 is point Q x601 = x60; y601 = y60 + 0.15 u; % z601 is top stroke at K z602 - z60 = z60 - z601; % z602 is bottom stroke at K x611 = x61; y611 = y61 + 0.15 u; % z611 is top stroke at L z612 - z61 = z61 - z611; % z612 is bottom stroke at L x621 = x62; y621 = y62 + 0.15 u; % z621 is top stroke at T z622 - z62 = z62 - z621; % z622 is bottom stroke at T x631 = x63; y631 = y63 + 0.15 u; % z631 is top stroke at V z632 - z63 = z63 - z631; % z632 is bottom stroke at V x641 = x64; y641 = y64 + 0.15 u; % z641 is top stroke at W z642 - z64 = z64 - z641; % z642 is bottom stroke at W x651 = x65; y651 = y65 + 0.15 u; % z651 is top stroke at X z652 - z65 = z65 - z651; % z652 is bottom stroke at X x661 = x66; y661 = y66 + 0.15 u; % z661 is top stroke at Q z662 - z66 = z66 - z661; % z662 is bottom stroke at Q draw z60--z66; draw z601--z602; draw z611--z612; draw z621--z622; draw z631--z632; draw z641--z642; draw z651--z652; draw z661--z662; label.lft(btex ${\rm K}$ etex, z60); label.bot(btex ${\rm L}$ etex, z612); label.bot(btex ${\rm T}$ etex, z622); label.bot(btex ${\rm V}$ etex, z632); label.bot(btex ${\rm W}$ etex, z642); label.bot(btex ${\rm X}$ etex, z652); label.bot(btex ${\rm Q}$ etex, z662); endfig; beginfig(2); z0 = (0,0); % z0 is point A x10 = x0; y10 = y0 + u; % z10 is point A x11 = x10 + 2u; y11 = y10; % z11 is point I x12 = x10 + 2.5u; y12 = y10; % z12 is point E x13 = x10 + 3u; y13 = y10; % z13 is point G x14 = x10 + 5.5u; y14 = y10; % z14 is point B x110 = x10; y110 = y10 + 0.15 u; % z110 is top stroke at A z120 - z10 = z10 - z110; % z120 is bottom stroke at A x111 = x11; y111 = y11 + 0.15 u; % z111 is top stroke at I z121 - z11 = z11 - z111; % z121 is bottom stroke at I x112 = x12; y112 = y12 + 0.15 u; % z112 is top stroke at E z122 - z12 = z12 - z112; % z122 is bottom stroke at E x113 = x13; y113 = y13 + 0.15 u; % z113 is top stroke at G z123 - z13 = z13 - z113; % z123 is bottom stroke at G x114 = x14; y114 = y14 + 0.15 u; % z114 is top stroke at B z124 - z14 = z14 - z114; % z124 is bottom stroke at B z20 = z0; % z20 is point C x21 = x20 + 3u; y21 = y20; % z21 is point K x22 = x20 + 3.5u; y22 = y20; % z22 is point F x23 = x20 + 4u; y23 = y20; % z23 is point H x24 = x20 + 5.5u; y24 = y20; % z24 is point D x210 = x20; y210 = y20 + 0.15 u; % z210 is top stroke at C z220 - z20 = z20 - z210; % z220 is bottom stroke at C x211 = x21; y211 = y21 + 0.15 u; % z211 is top stroke at K z221 - z21 = z21 - z211; % z221 is bottom stroke at K x212 = x22; y212 = y22 + 0.15 u; % z212 is top stroke at F z222 - z22 = z22 - z212; % z222 is bottom stroke at F x213 = x23; y213 = y23 + 0.15 u; % z213 is top stroke at H z223 - z23 = z23 - z213; % z223 is bottom stroke at H x214 = x24; y214 = y24 + 0.15 u; % z214 is top stroke at D z224 - z24 = z24 - z214; % z224 is bottom stroke at D draw z10--z14; draw z110--z120; draw z111--z121; draw z112--z122; draw z113--z123; draw z20--z24; draw z210--z220; draw z211--z221; draw z212--z222; draw z213--z223; label.top(btex ${\rm A}$ etex, z110); label.top(btex ${\rm I}$ etex, z111); label.top(btex ${\rm E}$ etex, z112); label.top(btex ${\rm G}$ etex, z113); label.top(btex ${\rm B}$ etex, z114); label.top(btex ${\rm C}$ etex, z210); label.top(btex ${\rm K}$ etex, z211); label.top(btex ${\rm F}$ etex, z212); label.top(btex ${\rm H}$ etex, z213); label.top(btex ${\rm D}$ etex, z214); endfig; beginfig(3); z0 = (0,0); % z0 is origin z10 = z0; % z10 is point A x11 = x10 + 3u; y11 = y10; % z11 is point F x12 = x10 + 4u; y12 = y10; % z12 is point G x13 = x10 + 6u; y13 = y10; % z13 is point D x52 = x12 + u; y52 = y12 + 3u; % z52 is top of line GK z32 = 0.8 [z12, z52]; % z32 is point I z21 - z11 = 0.5 (z52 - z12); % z21 is point B z19 = whatever [z32,z21]; y19 = y10; % z19 is point E z43 = 1.4 [z21, z32]; z53 - 0.3 [z12,z13] = 1.5 (z52 - z12); % z53 is point C z22 = whatever [z12,z52]; y22 = y21; path p[]; p0 = z10..z21 {z32 - z21}..z53; % path p is the curve p2 = z12--z52; z42 = p0 intersectionpoint p2; % z42 is the intersection with GK draw z10--z13; draw z12--z42; draw z11--z21; draw z19--z43; draw z21--z22; draw p0; label.bot(btex ${\rm A}$ etex, z10); label.bot(btex ${\rm F}$ etex, z11); label.bot(btex ${\rm G}$ etex, z12); label.bot(btex ${\rm D}$ etex, z13); label.lrt(btex ${\rm I}$ etex, z32); label.ulft(btex ${\rm B}$ etex, z21); label.bot(btex ${\rm E}$ etex, z19); label.rt(btex ${\rm C}$ etex, z53); label.rt(btex ${\rm K}$ etex, z22); label.ulft(btex ${\rm H}$ etex, z42); endfig; beginfig(4); z0 = (0,0); % z0 is origin z11 = z0 + (u,4u); % z11 is point A x14 = x11 + 4u; y14 = y11; % z14 is point D z16 = 3/2 [z11, z14]; % z16 is point F z13 = z11 + (3u,-2u); % z13 is point C z15 = 3/2 [z11, z13]; % z15 is point E z20 = 0.5 [z11,z13] + 0.6 (z11 - z13) rotated 90; v = angle (z13 - z20) - angle (z11 - z20); z21 - z20 = (z11 - z20) rotated 0.25v; z22 - z20 = (z11 - z20) rotated 0.5v; z23 - z20 = (z11 - z20) rotated 0.75v; z12 = z22; % z12 is point B z30 = 0.5 [z11,z15] + 0.6 (z11 - z15) rotated 90; w = angle (z15 - z30) - angle (z11 - z30); z31 - z30 = (z11 - z30) rotated 0.25w; z32 - z30 = (z11 - z30) rotated 0.5w; z33 - z30 = (z11 - z30) rotated 0.75w; z17 = z33; % z17 is point G draw z11--z16; draw z11--z15; draw z13--z14; draw z15--z16; draw z11..z21..z22..z23..z13; draw z11..z31..z32..z33..z15; label.lft(btex ${\rm A}$ etex, z11); label.llft(btex ${\rm B}$ etex, z12); label.llft(btex ${\rm C}$ etex, z13); label.top(btex ${\rm D}$ etex, z14); label.llft(btex ${\rm E}$ etex, z15); label.top(btex ${\rm F}$ etex, z16); label.urt(btex ${\rm G}$ etex, z17); endfig; bye;