X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=7-geom%2F7-geom.mp;h=7375c63347f4e364c5fd28ff820270d80f424719;hb=9c081188a6a77b320623c4d79b68d86a950fae04;hp=4337fd0c07fab476c1a27f7a8a1c74ce1c320869;hpb=f0d1a6d462eed5cc2b829c36cf8b33348c5c2719;p=ads2.git diff --git a/7-geom/7-geom.mp b/7-geom/7-geom.mp index 4337fd0..7375c63 100644 --- a/7-geom/7-geom.mp +++ b/7-geom/7-geom.mp @@ -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