]> mj.ucw.cz Git - ads2.git/commitdiff
Dalsi verze geometrie.
authorMartin Mares <mj@ucw.cz>
Wed, 18 Nov 2009 22:46:23 +0000 (23:46 +0100)
committerMartin Mares <mj@ucw.cz>
Wed, 18 Nov 2009 22:46:23 +0000 (23:46 +0100)
7-geom/7-geom.mp
7-geom/7-geom.tex
7-geom/7-geom1_male_obaly.eps
7-geom/7-geom2_pridani_bodu.eps
7-geom/7-geom3_obalky.eps
7-geom/7-geom4_determinant.eps
7-geom/7-geom5_rybi_motivace.eps
7-geom/7-geom6_provazkovy_algoritmus.eps [new file with mode: 0644]
7-geom/7-geom7_naslednik_pres_konvexni_obal.eps [new file with mode: 0644]

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
index f294889e061f2caa04dacc4436ecd2295ae29632..a962728ed48bceff4d9aaa3e50dbbb8befd2375f 100644 (file)
@@ -5,7 +5,7 @@
 \>Uká¾eme si nìkolik základních algoritmù na øe¹ení geometrický problémù v~rovinì. Proè zrovna v~rovinì? Inu, jednorozmìrné problémy bývají triviální
 a naopak pro vy¹¹í dimenze jsou velice komplikované. Rovina je proto rozumným kompromisem mezi obtí¾ností a zajímavostí.
 
-Celou kapitolou nás bude provázet pohádka ze ¾ivota letních medvìdù. Pokusíme se vyøe¹it jejich \uv{ka¾dodenní} problémy~\dots
+Celou kapitolou nás bude provázet pohádka ze ¾ivota ledních medvìdù. Pokusíme se vyøe¹it jejich \uv{ka¾dodenní} problémy~\dots
 
 \h{Hledání konvexního obalu}
 
@@ -13,7 +13,7 @@ Celou kapitolou n
 Proto¾e medvìdi z~na¹í pohádky rozhodnì nejsou ledajací a ani chytrost jim neschází, rozhodli se v¹echny ryby pochytat. Znají pøesná místa výskytu
 ryb a rádi by vyrobili obrovskou sí», do které by je v¹echny chytili. Pomozte medvìdùm zjistit, jaký nejmen¹í obvod taková sí» mù¾e mít.}
 
-\figure{7-geom5_rybi_motivace.eps}{Problém ledních mìdvìdù: Jaký je nejmen¹í obvod sítì?}{2.5in}
+\figure{7-geom5_rybi_motivace.eps}{Problém ledních mìdvìdù: Jaký je nejmen¹í obvod sítì?}{3in}
 
 Neboli v~øeèi matematické, chceme pro zadanou mno¾inu bodù v~rovinì nalézt její konvexní obal. Co je to konvexní obal? Mno¾ina bodù je {\I konvexní},
 pokud pro ka¾dé dva body obsahuje i celou úseèku mezi nimi. {\I Konvexní obal} je nejmen¹í konvexní podmno¾ina roviny, která obsahuje v¹echny zadané
@@ -42,9 +42,10 @@ zleva doprava a postupn
 $k$-tého kroku algoritmu známe konvexní obal prvních $k$ bodù. Kdy¾ algoritmus skonèí, známe hledaný konvexní obal. Podle invariantu musíme v~$k$-tém
 kroku pøidat do obalu $k$-tý nejlevìj¹í bod. Zbývá si jen rozmyslet, jak pøesnì tento bod pøidat.
 
-Poslední bod napojíme na nejbli¾¹í bod konvexního obalu, který je nad ním a pod ním. Èasto se v¹ak stane, ¾e obal pøestane být konvexní. To se dá v¹ak
-snadno napravit, staèí odebírat pøedcházející body tak dlouho, dokud nezískáme konvexní obal. Pøíklad pøidání bodu je na obrázku ní¾e. Mnohdy je
-potøeba odebrat i více ne¾ jeden bod.
+Pøidání dal¹ího bodu do konvexního obalu funguje, jak je naznaèeno na obrázku. Podle invariantu víme, ¾e bod nejvíc vpravo je souèástí konvexního
+obalu. Za nìj napojíme novì pøidávaný bod. Tím jsme získali nìjaký obal, ale zpravidla nebude konvexní. To lze v¹ak snadno napravit, staèí
+odebírat body, v obou smìrech podél konvexního obalu, tak dlouho, dokud nezískáme konvexní obal. Na pøíkladu z obrázku nemusíme po smìru hodinových
+ruèièek odebrat ani jeden bod, obal je v poøádku. Naopak proti smìru hodinových ruèièek musíme odebrat dokonce dva body.
 
 \figure{7-geom2_pridani_bodu.eps}{Pøidání bodu do konvexního obalu.}{4.5in}
 
@@ -93,13 +94,35 @@ Mo
 \figure{7-geom4_determinant.eps}{Jak vypadají determinanty rùzných znamének v~rovinì.}{4.6in}
 
 \s{©lo by to vyøe¹it rychleji?} Také vám vrtá hlavou, zda existují rychlej¹í algoritmy? Nejrychlej¹í známý algoritmus, jeho¾ autorem je T.~Chan,
-funguje v~èase $\O(n \log h)$, kde $h$ je poèet bodù le¾ících v~konvexním obalu, a pøitom je pøekvapivì jednoduchý. Zde si naznaèíme, jak tento
+funguje v~èase $\O(n \log h)$, kde $h$ je poèet bodù le¾ících na konvexním obalu, a pøitom je pøekvapivì jednoduchý. Zde si naznaèíme, jak tento
 algoritmus funguje.
 
 Algoritmus pøichází s~následující my¹lenkou. Pøedpokládejme, ¾e bychom znali velikost konvexního obalu $h$. Rozdìlíme body libovolnì do $\lceil {n
 \over h} \rceil$ mno¾in $Q_1, \ldots, Q_k$ tak, ¾e $\vert Q_i \vert \le h$. Pro ka¾dou z~tìchto mno¾in nalezneme konvexní obal pomocí vý¹e popsaného
-algoritmu. To doká¾eme pro jednu v~èase $\O(h \log h)$ a pro v¹echny v~èase $\O(n \log h)$. Nakonec vezmeme tyto konvexní obaly a pomocí jiného
-algoritmu je v~èase $\O(n \log h)$ spojíme do konvexního obalu celé mno¾iny.
+algoritmu. To doká¾eme pro jednu v~èase $\O(h \log h)$ a pro v¹echny v~èase $\O(n \log h)$. V druhé fázi spustíme hledání konvexního obalu pomocí
+provázkového algoritmu a pro zrychlení pou¾ijeme pøedpoèítané obaly men¹ích mno¾in. Nejprve popí¹eme jeho my¹lenku. Pou¾ijeme následující pozorování:
+
+\s{Pozorování:} Úseèka spojující dva body $a$ a $b$ le¾í na konvexním obalu, právì kdy¾ v¹echny ostatní body le¾í pouze na jedné její
+stranì.\foot{Formálnì je podmínka následující: Pøímka $ab$ urèuje dvì poloroviny. Úseèka le¾í na konvexním obalu, právì kdy¾ v¹echny body le¾í v jedné
+z polorovin.}
+
+Algoritmu se øíká {\I provázkový}, proto¾e svojí èinností pøipomíná namotávání provázku podél konvexního obalu.  Zaèneme s bodem, který na konvexním
+obalu urèitì le¾í, to je tøeba ten nejlevìj¹í. V ka¾dém kroku nalezneme následující bod po obvodu konvexního obalu. To udìláme napøíklad tak, ¾e
+projdeme v¹echny body a vybereme ten, který svírá nejmen¹í úhel s poslední stranou konvexního obalu. Novì pøidaná úseèka vyhovuje pozorování a proto
+do konvexního obalu patøí. Po $h$ krocích dostaneme zpìt k nejlevìj¹ímu bodu a výpoèet ukonèíme. V ka¾dém kroku potøebujeme projít v¹echny body a
+vybrat následníka, co¾ doká¾eme v èase $\O(n)$. Celková slo¾itost algoritmu je tedy $\O(n \cdot h)$.
+
+\twofigures{7-geom6_provazkovy_algoritmus.eps}{Provázkový algoritmus.}{1.25in}
+                  {7-geom7_naslednik_pres_konvexni_obal.eps}{Hledání kandidáta v pøedpoèítaném obalu}{2.5in}
+
+Provázkový algoritmus funguje, ale má jednu obrovskou nevýhodu -- je toti¾ ukrutnì pomalý. Ký¾eného zrychlení dosáhneme, pokud pou¾ijeme pøedpoèítané
+konvexní obaly. Ty umo¾ní rychleji hledat následníka. Pro ka¾dou z mno¾in $Q_i$ najdeme zvlá¹» kandidáta a poté z nich vybereme toho nejlep¹ího.
+Mo¾ný kandidát v¾dy le¾í na konvexním obalu mno¾iny $Q_i$. Vyu¾ijeme toho, ¾e body obalu jsou \uv{uspoøádané}, i kdy¾ trochu netypicky do kruhu.
+Kandidáta mù¾eme hledat metodou pùlení intervalu, i kdy¾ detaily jsou malièko slo¾itìj¹í ne¾ je obvyklé. Jak pùlit zjistíme podle smìru zatáèení
+konvexního obalu. Detaily si rozmyslí ètenáø sám.
+
+Èasová slo¾itost pùlení je $\O(\log h)$ pro jednu mno¾inu. Mno¾in je nejvý¹e $\O({n \over h})$, tedy následující bod konvexního obalu nalezneme v èase
+$\O({n \over h} \log h)$. Celý obal nalezneme ve slibovaném èase $\O(n \log h)$. 
 
 Popsanému algoritmu schází jedna dùle¾itá vìc: Ve skuteènosti vìt¹inou neznáme velikost $h$. Budeme proto algoritmus iterovat s~rostoucí hodnotou $h$,
 dokud konvexní obal nesestrojíme. Pokud pøi slepování konvexních obalù zjistíme, ¾e konvexní obal je vìt¹í ne¾ $h$, výpoèet ukonèíme. Zbývá je¹tì
index f156331efa93b1001dac1aefc784e990cbe56cb0..94a501d5ae06de09ae28ae4bc2023c8f86f2240c 100644 (file)
@@ -2,7 +2,7 @@
 %%BoundingBox: -13 -35 216 12 
 %%HiResBoundingBox: -12.12236 -34.76685 215.33812 11.24376 
 %%Creator: MetaPost 0.993
-%%CreationDate: 2009.11.14:2207
+%%CreationDate: 2009.11.17:1821
 %%Pages: 1
 %*Font: cmmi10 9.96265 9.96265 6e:8
 %*Font: cmr10 9.96265 9.96265 31:f008
index e1eaa42d7462f832bab8aa07d19394fc84885436..a6b2b9e0624822f9d8638119e2ed05607a4e226a 100644 (file)
@@ -2,7 +2,7 @@
 %%BoundingBox: -49 -41 287 37 
 %%HiResBoundingBox: -48.93608 -40.43207 286.20425 36.75539 
 %%Creator: MetaPost 0.993
-%%CreationDate: 2009.11.14:2207
+%%CreationDate: 2009.11.17:1821
 %%Pages: 1
 %%BeginProlog
 %%EndProlog
@@ -138,14 +138,19 @@ newpath 79.37016 31.18127 moveto
 93.54338 34.01566 lineto
 116.22063 28.34645 lineto
 133.22824 5.6692 lineto
-155.90549 2.83482 lineto
 138.89745 -19.84242 lineto
 104.88179 -36.85048 lineto
 87.87418 -39.68486 lineto stroke
+newpath 138.89745 -19.84242 moveto
+142.20024 -10.76814 148.11893 -2.87662 155.90549 2.83482 curveto stroke
+newpath 138.89745 -19.84242 moveto
+145.61255 -13.12732 151.33917 -5.49188 155.90549 2.83482 curveto stroke
  0 0.59776 dtransform truncate idtransform setlinewidth pop
  [3 3 ] 0 setdash
 newpath 155.90549 2.83482 moveto
 116.22063 28.34645 lineto stroke
+newpath 155.90549 2.83482 moveto
+133.22824 5.6692 lineto stroke
  1 1 1 setrgbcolor
 newpath 95.5359 34.01566 moveto
 95.5359 34.54413 95.32594 35.05089 94.95229 35.42456 curveto
index 29c58418b2f494e94407debd947906ec048bc814..39e9e9fa73b3af7232173ab5584050242b1cb7b8 100644 (file)
@@ -2,7 +2,7 @@
 %%BoundingBox: -211 -75 37 66 
 %%HiResBoundingBox: -210.87447 -74.3254 36.12636 65.82135 
 %%Creator: MetaPost 0.993
-%%CreationDate: 2009.11.14:2207
+%%CreationDate: 2009.11.17:1821
 %%Pages: 1
 %*Font: cmmi10 9.96265 9.96265 4c:88
 %*Font: csr10 9.96265 9.96265 61:d13640000000000000000000000000008008
index e2543f4f698ad0874798df4932803eb2ed87fc55..262b520cc76fe4bb25e35764f26824c728f1a0fc 100644 (file)
@@ -2,7 +2,7 @@
 %%BoundingBox: -81 -40 277 29 
 %%HiResBoundingBox: -80.36743 -39.59418 276.40172 28.59645 
 %%Creator: MetaPost 0.993
-%%CreationDate: 2009.11.14:2207
+%%CreationDate: 2009.11.17:1821
 %%Pages: 1
 %*Font: cmmi10 9.96265 9.96265 3c:a0004000020800602
 %*Font: cmr10 9.96265 9.96265 28:c08004000000000c0008
index 15d005fe2c57414fce80fd46d6bb9bcc9b1c822d..a99d31e09fe20071c152809689999dfaa924d0ce 100644 (file)
@@ -2,7 +2,7 @@
 %%BoundingBox: -214 -69 38 59 
 %%HiResBoundingBox: -213.63019 -68.29349 37.06538 58.48102 
 %%Creator: MetaPost 0.993
-%%CreationDate: 2009.11.14:2207
+%%CreationDate: 2009.11.17:1821
 %%Pages: 1
 %%BeginProlog
 %%EndProlog
diff --git a/7-geom/7-geom6_provazkovy_algoritmus.eps b/7-geom/7-geom6_provazkovy_algoritmus.eps
new file mode 100644 (file)
index 0000000..2db8aa1
--- /dev/null
@@ -0,0 +1,150 @@
+%!PS
+%%BoundingBox: -88 -3 3 86 
+%%HiResBoundingBox: -87.77908 -2.73973 2.73973 85.33824 
+%%Creator: MetaPost 0.993
+%%CreationDate: 2009.11.17:1821
+%%Pages: 1
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor 0 1.4944 dtransform truncate idtransform setlinewidth pop
+ [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath -85.03935 0 moveto
+-73.64644 29.76364 lineto
+-42.51968 54.3871 lineto
+0 59.52728 lineto stroke
+ 0 0.59776 dtransform truncate idtransform setlinewidth pop
+newpath -42.51968 0 moveto
+-42.51973 5.22461 -40.55508 10.35718 -36.82323 14.88182 curveto
+-33.09134 19.40651 -27.72371 23.16383 -21.25984 25.77615 curveto
+-14.79602 28.38843 -7.46376 29.76369 0 29.76364 curveto stroke
+newpath -3.64316 28.11188 moveto
+-2.45203 28.70012 -1.23642 29.2515 0 29.76364 curveto
+-1.23642 30.27582 -2.48584 30.7455 -3.74405 31.17184 curveto
+ closepath
+gsave fill grestore stroke
+ 0 3.98505 dtransform truncate idtransform setlinewidth pop
+newpath -56.6929 14.17323 moveto 0 0 rlineto stroke
+newpath -28.34645 42.51968 moveto 0 0 rlineto stroke
+newpath -14.17323 5.6692 moveto 0 0 rlineto stroke
+ 0.59776 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash
+newpath -85.03935 85.03935 moveto
+-85.03935 0 lineto stroke
+ 0 0.59776 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath -85.03935 22.67725 moveto
+-83.65663 22.67723 -82.27681 22.55075 -80.91713 22.29938 curveto
+-79.55757 22.04803 -78.22385 21.67288 -76.93262 21.1786 curveto stroke
+newpath -80.90599 20.7179 moveto
+-79.5978 20.98819 -78.26816 21.14238 -76.93262 21.1786 curveto
+-77.90259 22.09737 -78.9518 22.92856 -80.06795 23.6625 curveto
+ closepath
+gsave fill grestore stroke
+ [3 3 ] 0 setdash
+newpath -52.48845 85.03828 moveto
+-73.64644 29.76364 lineto stroke
+ [] 0 setdash
+newpath -63.51306 56.2368 moveto
+-61.14473 55.33046 -58.90877 54.11034 -56.86504 52.60915 curveto
+-54.82132 51.10796 -52.98831 49.33926 -51.41513 47.35042 curveto stroke
+newpath -55.0372 49.04776 moveto
+-53.79277 48.56853 -52.5823 48.00154 -51.41513 47.35042 curveto
+-51.78 48.63615 -52.235 49.89302 -52.77606 51.11185 curveto
+ closepath
+gsave fill grestore stroke
+ [3 3 ] 0 setdash
+newpath -3.77296 85.03891 moveto
+-42.51968 54.3871 lineto stroke
+ [] 0 setdash
+newpath -15.84218 75.49118 moveto
+-13.90816 73.04645 -12.31938 70.34744 -11.1205 67.46997 curveto
+-9.92165 64.59256 -9.12402 61.564 -8.75005 58.46933 curveto stroke
+newpath -10.91466 61.83304 moveto
+-10.12866 60.75647 -9.40573 59.6334 -8.75005 58.46933 curveto
+-8.39053 59.75609 -8.10757 61.0614 -7.90208 62.37842 curveto
+ closepath
+gsave fill grestore stroke
+ 1 1 1 setrgbcolor
+newpath -83.04683 0 moveto
+-83.04683 0.52847 -83.25679 1.03523 -83.63045 1.4089 curveto
+-84.00412 1.78256 -84.51088 1.99252 -85.03935 1.99252 curveto
+-85.56783 1.99252 -86.07458 1.78256 -86.44826 1.4089 curveto
+-86.82191 1.03523 -87.03188 0.52847 -87.03188 0 curveto
+-87.03188 -0.52847 -86.82191 -1.03523 -86.44826 -1.4089 curveto
+-86.07458 -1.78256 -85.56783 -1.99252 -85.03935 -1.99252 curveto
+-84.51088 -1.99252 -84.00412 -1.78256 -83.63045 -1.4089 curveto
+-83.25679 -1.03523 -83.04683 -0.52847 -83.04683 0 curveto closepath fill
+ 0 0 0 setrgbcolor 0 1.4944 dtransform truncate idtransform setlinewidth pop
+newpath -83.04683 0 moveto
+-83.04683 0.52847 -83.25679 1.03523 -83.63045 1.4089 curveto
+-84.00412 1.78256 -84.51088 1.99252 -85.03935 1.99252 curveto
+-85.56783 1.99252 -86.07458 1.78256 -86.44826 1.4089 curveto
+-86.82191 1.03523 -87.03188 0.52847 -87.03188 0 curveto
+-87.03188 -0.52847 -86.82191 -1.03523 -86.44826 -1.4089 curveto
+-86.07458 -1.78256 -85.56783 -1.99252 -85.03935 -1.99252 curveto
+-84.51088 -1.99252 -84.00412 -1.78256 -83.63045 -1.4089 curveto
+-83.25679 -1.03523 -83.04683 -0.52847 -83.04683 0 curveto closepath stroke
+ 1 1 1 setrgbcolor
+newpath -71.65392 29.76364 moveto
+-71.65392 30.29211 -71.86388 30.79887 -72.23753 31.17255 curveto
+-72.6112 31.5462 -73.11797 31.75616 -73.64644 31.75616 curveto
+-74.17491 31.75616 -74.68167 31.5462 -75.05534 31.17255 curveto
+-75.429 30.79887 -75.63896 30.29211 -75.63896 29.76364 curveto
+-75.63896 29.23517 -75.429 28.72841 -75.05534 28.35474 curveto
+-74.68167 27.98108 -74.17491 27.77112 -73.64644 27.77112 curveto
+-73.11797 27.77112 -72.6112 27.98108 -72.23753 28.35474 curveto
+-71.86388 28.72841 -71.65392 29.23517 -71.65392 29.76364 curveto closepath fill
+ 0 0 0 setrgbcolor
+newpath -71.65392 29.76364 moveto
+-71.65392 30.29211 -71.86388 30.79887 -72.23753 31.17255 curveto
+-72.6112 31.5462 -73.11797 31.75616 -73.64644 31.75616 curveto
+-74.17491 31.75616 -74.68167 31.5462 -75.05534 31.17255 curveto
+-75.429 30.79887 -75.63896 30.29211 -75.63896 29.76364 curveto
+-75.63896 29.23517 -75.429 28.72841 -75.05534 28.35474 curveto
+-74.68167 27.98108 -74.17491 27.77112 -73.64644 27.77112 curveto
+-73.11797 27.77112 -72.6112 27.98108 -72.23753 28.35474 curveto
+-71.86388 28.72841 -71.65392 29.23517 -71.65392 29.76364 curveto closepath
+ stroke
+ 1 1 1 setrgbcolor
+newpath -40.52716 54.3871 moveto
+-40.52716 54.91557 -40.73712 55.42233 -41.11078 55.796 curveto
+-41.48445 56.16966 -41.99121 56.37962 -42.51968 56.37962 curveto
+-43.04816 56.37962 -43.55492 56.16966 -43.92859 55.796 curveto
+-44.30225 55.42233 -44.5122 54.91557 -44.5122 54.3871 curveto
+-44.5122 53.85863 -44.30225 53.35187 -43.92859 52.9782 curveto
+-43.55492 52.60454 -43.04816 52.39458 -42.51968 52.39458 curveto
+-41.99121 52.39458 -41.48445 52.60454 -41.11078 52.9782 curveto
+-40.73712 53.35187 -40.52716 53.85863 -40.52716 54.3871 curveto closepath fill
+ 0 0 0 setrgbcolor
+newpath -40.52716 54.3871 moveto
+-40.52716 54.91557 -40.73712 55.42233 -41.11078 55.796 curveto
+-41.48445 56.16966 -41.99121 56.37962 -42.51968 56.37962 curveto
+-43.04816 56.37962 -43.55492 56.16966 -43.92859 55.796 curveto
+-44.30225 55.42233 -44.5122 54.91557 -44.5122 54.3871 curveto
+-44.5122 53.85863 -44.30225 53.35187 -43.92859 52.9782 curveto
+-43.55492 52.60454 -43.04816 52.39458 -42.51968 52.39458 curveto
+-41.99121 52.39458 -41.48445 52.60454 -41.11078 52.9782 curveto
+-40.73712 53.35187 -40.52716 53.85863 -40.52716 54.3871 curveto closepath
+ stroke
+ 1 1 1 setrgbcolor
+newpath 1.99252 59.52728 moveto
+1.99252 60.05576 1.78256 60.56252 1.4089 60.93619 curveto
+1.03523 61.30984 0.52847 61.5198 0 61.5198 curveto
+-0.52847 61.5198 -1.03523 61.30984 -1.4089 60.93619 curveto
+-1.78256 60.56252 -1.99252 60.05576 -1.99252 59.52728 curveto
+-1.99252 58.99881 -1.78256 58.49205 -1.4089 58.11838 curveto
+-1.03523 57.74472 -0.52847 57.53476 0 57.53476 curveto
+0.52847 57.53476 1.03523 57.74472 1.4089 58.11838 curveto
+1.78256 58.49205 1.99252 58.99881 1.99252 59.52728 curveto closepath fill
+ 0 0 0 setrgbcolor
+newpath 1.99252 59.52728 moveto
+1.99252 60.05576 1.78256 60.56252 1.4089 60.93619 curveto
+1.03523 61.30984 0.52847 61.5198 0 61.5198 curveto
+-0.52847 61.5198 -1.03523 61.30984 -1.4089 60.93619 curveto
+-1.78256 60.56252 -1.99252 60.05576 -1.99252 59.52728 curveto
+-1.99252 58.99881 -1.78256 58.49205 -1.4089 58.11838 curveto
+-1.03523 57.74472 -0.52847 57.53476 0 57.53476 curveto
+0.52847 57.53476 1.03523 57.74472 1.4089 58.11838 curveto
+1.78256 58.49205 1.99252 58.99881 1.99252 59.52728 curveto closepath stroke
+showpage
+%%EOF
diff --git a/7-geom/7-geom7_naslednik_pres_konvexni_obal.eps b/7-geom/7-geom7_naslednik_pres_konvexni_obal.eps
new file mode 100644 (file)
index 0000000..7a14c41
--- /dev/null
@@ -0,0 +1,106 @@
+%!PS
+%%BoundingBox: -125 -42 59 41 
+%%HiResBoundingBox: -124.99023 -41.30498 58.47002 40.5129 
+%%Creator: MetaPost 0.993
+%%CreationDate: 2009.11.17:1821
+%%Pages: 1
+%*Font: cmmi10 9.96265 9.96265 51:8
+%*Font: cmmi7 6.97385 6.97385 69:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+44.50406 -31.46942 moveto
+(Q) cmmi10 9.96265 fshow
+52.38007 -32.96382 moveto
+(i) cmmi7 6.97385 fshow
+ 0 3.98505 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 56.4775 3.45886 moveto 0 0 rlineto stroke
+newpath 31.34996 33.06506 moveto 0 0 rlineto stroke
+newpath -17.38435 37.77316 moveto 0 0 rlineto stroke
+newpath -53.02762 14.0371 moveto 0 0 rlineto stroke
+newpath -48.74036 -20.26933 moveto 0 0 rlineto stroke
+newpath -7.75012 -39.31245 moveto 0 0 rlineto stroke
+newpath 39.07585 -28.75238 moveto 0 0 rlineto stroke
+ 0 0.59776 dtransform truncate idtransform setlinewidth pop
+newpath 56.4775 3.45886 moveto
+31.34996 33.06506 lineto
+-17.38435 37.77316 lineto
+-53.02762 14.0371 lineto
+-48.74036 -20.26933 lineto
+-7.75012 -39.31245 lineto
+39.07585 -28.75238 lineto
+ closepath stroke
+ 0 1.4944 dtransform truncate idtransform setlinewidth pop
+ [3 3 ] 0 setdash
+newpath -113.3858 -8.50403 moveto
+-17.38435 37.77316 lineto stroke
+ [] 0 setdash
+newpath -113.3858 -8.50403 moveto
+-124.24303 -17.61447 lineto stroke
+ 1 1 1 setrgbcolor
+newpath -15.39183 37.77316 moveto
+-15.39183 38.30164 -15.60179 38.8084 -15.97545 39.18207 curveto
+-16.34912 39.55573 -16.85588 39.76569 -17.38435 39.76569 curveto
+-17.91283 39.76569 -18.41959 39.55573 -18.79326 39.18207 curveto
+-19.16692 38.8084 -19.37688 38.30164 -19.37688 37.77316 curveto
+-19.37688 37.24469 -19.16692 36.73793 -18.79326 36.36426 curveto
+-18.41959 35.9906 -17.91283 35.78064 -17.38435 35.78064 curveto
+-16.85588 35.78064 -16.34912 35.9906 -15.97545 36.36426 curveto
+-15.60179 36.73793 -15.39183 37.24469 -15.39183 37.77316 curveto closepath fill
+ 0 0 0 setrgbcolor
+newpath -15.39183 37.77316 moveto
+-15.39183 38.30164 -15.60179 38.8084 -15.97545 39.18207 curveto
+-16.34912 39.55573 -16.85588 39.76569 -17.38435 39.76569 curveto
+-17.91283 39.76569 -18.41959 39.55573 -18.79326 39.18207 curveto
+-19.16692 38.8084 -19.37688 38.30164 -19.37688 37.77316 curveto
+-19.37688 37.24469 -19.16692 36.73793 -18.79326 36.36426 curveto
+-18.41959 35.9906 -17.91283 35.78064 -17.38435 35.78064 curveto
+-16.85588 35.78064 -16.34912 35.9906 -15.97545 36.36426 curveto
+-15.60179 36.73793 -15.39183 37.24469 -15.39183 37.77316 curveto closepath
+ stroke
+ 1 1 1 setrgbcolor
+newpath -111.39328 -8.50403 moveto
+-111.39328 -7.97556 -111.60324 -7.4688 -111.9769 -7.09512 curveto
+-112.35057 -6.72147 -112.85733 -6.5115 -113.3858 -6.5115 curveto
+-113.91428 -6.5115 -114.42104 -6.72147 -114.79471 -7.09512 curveto
+-115.16837 -7.4688 -115.37833 -7.97556 -115.37833 -8.50403 curveto
+-115.37833 -9.0325 -115.16837 -9.53926 -114.79471 -9.91293 curveto
+-114.42104 -10.28659 -113.91428 -10.49655 -113.3858 -10.49655 curveto
+-112.85733 -10.49655 -112.35057 -10.28659 -111.9769 -9.91293 curveto
+-111.60324 -9.53926 -111.39328 -9.0325 -111.39328 -8.50403 curveto closepath
+ fill
+ 0 0 0 setrgbcolor
+newpath -111.39328 -8.50403 moveto
+-111.39328 -7.97556 -111.60324 -7.4688 -111.9769 -7.09512 curveto
+-112.35057 -6.72147 -112.85733 -6.5115 -113.3858 -6.5115 curveto
+-113.91428 -6.5115 -114.42104 -6.72147 -114.79471 -7.09512 curveto
+-115.16837 -7.4688 -115.37833 -7.97556 -115.37833 -8.50403 curveto
+-115.37833 -9.0325 -115.16837 -9.53926 -114.79471 -9.91293 curveto
+-114.42104 -10.28659 -113.91428 -10.49655 -113.3858 -10.49655 curveto
+-112.85733 -10.49655 -112.35057 -10.28659 -111.9769 -9.91293 curveto
+-111.60324 -9.53926 -111.39328 -9.0325 -111.39328 -8.50403 curveto closepath
+ stroke
+ 0 0.59776 dtransform truncate idtransform setlinewidth pop
+newpath -13.54805 17.42911 moveto
+-17.04922 16.0954 -20.14311 14.247 -22.5961 11.9799 curveto
+-27.13503 7.78497 -29.10814 2.49986 -28.08002 -2.71344 curveto
+-27.0519 -7.92674 -23.10701 -12.63998 -17.11423 -15.8172 curveto
+-11.12143 -18.99443 -3.57126 -20.37561 3.87636 -19.65593 curveto
+11.32397 -18.93625 18.05719 -16.17484 22.5961 -11.9799 curveto
+27.13503 -7.78497 29.10814 -2.49986 28.08002 2.71344 curveto
+27.0519 7.92674 23.10701 12.63998 17.11423 15.8172 curveto
+11.12143 18.99443 3.57126 20.37561 -3.87636 19.65593 curveto stroke
+newpath -0.25618 21.35713 moveto
+-1.48535 20.85222 -2.69522 20.28448 -3.87636 19.65593 curveto
+-2.59671 19.26517 -1.33978 18.81108 -0.1136 18.29893 curveto
+ closepath
+gsave fill grestore stroke
+newpath -16.2811 14.50847 moveto
+-15.45143 15.5185 -14.53754 16.49489 -13.54805 17.42911 curveto
+-14.90833 17.46822 -16.24495 17.42404 -17.5458 17.29652 curveto
+ closepath
+gsave fill grestore stroke
+showpage
+%%EOF