input lib figname("8-geom2_"); figtag("usecky"); beginfig(1); def drawusecka(expr p,q) = draw vertex(p); draw vertex(q); draw p--q; enddef; pair A[],B[]; A0 := origin; B0 := (4cm,1.5cm); A1 := (0.5cm,1.5cm); B1 := (1cm,0); A2 := (2cm,1.3cm); B2 := (3cm, -0.9cm); A3 := (1cm,-1.3cm); B3 := (3.5cm,0); z0 = whatever[A0,B0]; z0 = whatever[A1,B1]; z1 = whatever[A0,B0]; z1 = whatever[A2,B2]; z2 = whatever[A2,B2]; z2 = whatever[A3,B3]; for i:=0 upto 2: fill fullcircle scaled 7pt shifted z[i]; drawemptyvertex(z[i]); endfor for i:=0 upto 3: drawusecka(A[i], B[i]); endfor endfig; figtag("polorovina"); beginfig(2); pair A,B; A := origin; B := (1.7cm,0.5cm); an := angle(B-A); path p; p := from(.5[A,B],an+90,3cm)--from(.5[A,B],an-90,3cm); fill p--reverse(p shifted (A-0.8[A,B]))--cycle withcolor 0.8white; %fill p{dir (an+180)}..-0.35[A,B]..{dir an}cycle withcolor 0.8white; draw p withpen boldpen; draw A--B dashed evenly; drawemptyvertex(A); drawemptyvertex(B); label.llft(btex $a$ etex, A); label.urt(btex $b$ etex, B); endfig; figtag("voroneho_diagram"); beginfig(3); u := 1.35cm; pair A[],B[]; A0 := origin; A1 := (-u,-u); A2 := (1.3u,-u); A3 := (1.5u,0.7u); A4 := (0.6u,0.8u); A5 := (0.2u,1.9u); A6 := (-1.3u,1u); def osa(expr a, b, an,l) = from(.5[a,b], angle(b-a)+an, l) enddef; vardef prusecik_os(expr p,q,r) = save b; pair b; b = whatever[osa(p,q, 90,1cm), osa(p,q,-90,1cm)]; b = whatever[osa(q,r, 90,1cm), osa(q,r,-90,1cm)]; b enddef; B[0] := prusecik_os(A0,A1,A2); B[1] := prusecik_os(A0,A1,A6); B[2] := prusecik_os(A0,A4,A6); B[3] := prusecik_os(A4,A5,A6); B[4] := prusecik_os(A3,A4,A5); B[5] := prusecik_os(A0,A3,A4); B[6] := prusecik_os(A0,A2,A3); draw osa(A1,A2,-90,2cm)--B[0]--B[1]--osa(A1,A6,90,1.3cm) withpen boldpen; draw B[1]--B[2]--B[3]--osa(A6,A5,90,2cm) withpen boldpen; draw B[3]--B[4]--osa(A3,A5,-90,2.7cm) withpen boldpen; draw B[4]--B[5]--B[2] withpen boldpen; draw B[5]--B[6]--osa(A2,A3,-90,1.3cm) withpen boldpen; draw B[6]--B[0] withpen boldpen; draw A0--A1--A2--A0--A6--A1 dashed evenly; draw A6--A5--A4--A0--A3--A2 dashed evenly; draw A3--A5 dashed evenly; draw A6--A4--A3 dashed evenly; for i:=0 upto 6: draw vertex(B[i]); endfor for i:=0 upto 6: drawemptyvertex(A[i]); endfor endfig; end