C := C shifted shift;
% krok 2
- draw for i := 0 upto 3: A[i]-- endfor C for i := 4 upto 6: --A[i] endfor;
+ draw A[0] for i := 1 upto 6: --A[i] endfor;
+ draw A[4]{dir 70}..C;
+ draw A[4]{dir 45}..C;
draw C--A[2] dashed evenly withpen normalpen;
+ draw C--A[3] dashed evenly withpen normalpen;
for i := 1 upto 5: drawemptyvertex(A[i]); endfor
for i := 0 upto 2: draw vertex(B[i]); endfor
drawemptyvertex(C);
for i:=0 upto 10: draw_fish(B[i], 1, 0); endfor;
draw createpath(for i:=0 upto 9: A[i]-- endfor cycle) scaled 1.13 shifted (0.4cm,0) withpen boldpen;
endfig;
+
+figtag("provazkovy_algoritmus");
+beginfig(6);
+ pickup boldpen;
+ pair A[],B[],u; u := (-3cm, 0);
+ for i := 0 upto 3: A[i] := u rotated (-30*i) yscaled 0.7; endfor;
+ A[2] := A[2] + (0,0.1cm);
+ draw for i:=0 upto 2: A[i]-- endfor A[3];
+ drawarrow ((u/2) for i:=1 upto 3: ..u/2 rotated (-30*i) endfor) yscaled 0.7 withpen normalpen;
+ B[0] := (-2cm,0.5cm);
+ B[1] := (-1cm,1.5cm);
+ B[2] := (-0.5cm,0.2cm);
+ for i:=0 upto 2: draw vertex(B[i]); endfor
+
+ path ub; ub := (-20cm,3cm)--(20cm,3cm);
+
+ numeric ang[]; ang[0] = 90; ang[1] = angle(A[1]-A[0]); ang[2] = angle(A[2]-A[1]); ang[3] = angle(A[3]-A[2]);
+ for i:=0 upto 2:
+ draw reverse(dirs(A[i],ang[i],6cm) cutafter ub) withpen normalpen dashed evenly;
+ l := 1cm + (i-1)*0.2cm;
+ drawarrow from(A[i],ang[i],l)..from(A[i],(ang[i]+ang[i+1])/2,l)..from(A[i],ang[i+1],l) withpen normalpen;
+ endfor
+
+ for i:=0 upto 3: drawemptyvertex(A[i]); endfor;
+endfig;
+
+figtag("naslednik_pres_konvexni_obal");
+beginfig(7);
+ pair A[], C;
+ label.lrt(btex $Q_i$ etex, (1.5cm,-0.8cm));
+ pickup boldpen;
+
+ C := (-4cm,-0.3cm);
+ for i:=0 upto 6:
+ A[i] := (2cm,0) rotated (360*i/7+5) yscaled 0.7;
+ draw vertex(A[i]);
+ endfor;
+ draw for i:=0 upto 6: A[i]-- endfor cycle withpen normalpen;
+ draw C--A[2] dashed evenly;
+
+ draw dirs(C, -140, 0.5cm);
+ drawemptyvertex(A[2]);
+ drawemptyvertex(C);
+ drawdblarrow (fullcircle scaled 2cm rotated (360*2/7-5) yscaled 0.7) cutbefore (origin--(3cm,0) rotated (360*2/7+25)) withpen normalpen;
+ %drawarrow C+(0,0.5cm){dir 60}..A[2]+(0,0.5cm) withpen normalpen;
+ %drawarrow 0.6A[5]{dir 170}..(0.6A[3] rotated -15) withpen normalpen;
+ %drawarrow 0.7A[6]{dir 60}..(0.5A[1] rotated 30) withpen normalpen;
+endfig;
end