From: Martin Mares Date: Wed, 18 Nov 2009 22:46:23 +0000 (+0100) Subject: Dalsi verze geometrie. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=dc113436969c96f2a10e9c34da87054ac46edcd1;p=ads2.git Dalsi verze geometrie. --- 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 diff --git a/7-geom/7-geom.tex b/7-geom/7-geom.tex index f294889..a962728 100644 --- a/7-geom/7-geom.tex +++ b/7-geom/7-geom.tex @@ -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ì diff --git a/7-geom/7-geom1_male_obaly.eps b/7-geom/7-geom1_male_obaly.eps index f156331..94a501d 100644 --- a/7-geom/7-geom1_male_obaly.eps +++ b/7-geom/7-geom1_male_obaly.eps @@ -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 diff --git a/7-geom/7-geom2_pridani_bodu.eps b/7-geom/7-geom2_pridani_bodu.eps index e1eaa42..a6b2b9e 100644 --- a/7-geom/7-geom2_pridani_bodu.eps +++ b/7-geom/7-geom2_pridani_bodu.eps @@ -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 diff --git a/7-geom/7-geom3_obalky.eps b/7-geom/7-geom3_obalky.eps index 29c5841..39e9e9f 100644 --- a/7-geom/7-geom3_obalky.eps +++ b/7-geom/7-geom3_obalky.eps @@ -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 diff --git a/7-geom/7-geom4_determinant.eps b/7-geom/7-geom4_determinant.eps index e2543f4..262b520 100644 --- a/7-geom/7-geom4_determinant.eps +++ b/7-geom/7-geom4_determinant.eps @@ -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 diff --git a/7-geom/7-geom5_rybi_motivace.eps b/7-geom/7-geom5_rybi_motivace.eps index 15d005f..a99d31e 100644 --- a/7-geom/7-geom5_rybi_motivace.eps +++ b/7-geom/7-geom5_rybi_motivace.eps @@ -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 index 0000000..2db8aa1 --- /dev/null +++ b/7-geom/7-geom6_provazkovy_algoritmus.eps @@ -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 index 0000000..7a14c41 --- /dev/null +++ b/7-geom/7-geom7_naslednik_pres_konvexni_obal.eps @@ -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