]> mj.ucw.cz Git - ads2.git/blobdiff - 7-geom/7-geom.mp
Paralelni scitani a trideni: opravy preklepu a sazby.
[ads2.git] / 7-geom / 7-geom.mp
index 4337fd0c07fab476c1a27f7a8a1c74ce1c320869..7375c63347f4e364c5fd28ff820270d80f424719 100644 (file)
@@ -67,8 +67,11 @@ beginfig(2);
        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);
@@ -222,4 +225,52 @@ beginfig(5);
        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