From 687b4b0f338ce3549cf0fe3aa91fb7b286e50ef9 Mon Sep 17 00:00:00 2001 From: Vincent Nivoliers <vincent.nivoliers@univ-lyon1.fr> Date: Mon, 18 Nov 2019 12:14:24 +0100 Subject: [PATCH] debut de presentation --- Code/hull.cpp | 95 +- Presentation/Figures/hull.pdf | Bin 0 -> 7992 bytes Presentation/Figures/hull.svg | 1695 +++++++++++++++++++++ Presentation/Figures/hull_aligned.pdf | Bin 0 -> 1538 bytes Presentation/Figures/hull_aligned.svg | 17 + Presentation/Figures/hull_sort.pdf | Bin 0 -> 8516 bytes Presentation/Figures/increment_hull_1.pdf | Bin 0 -> 9126 bytes Presentation/Figures/increment_hull_2.pdf | Bin 0 -> 9055 bytes Presentation/Figures/increment_hull_3.pdf | Bin 0 -> 9009 bytes Presentation/Figures/partial_hull.pdf | Bin 0 -> 8884 bytes Presentation/beamer_preamble.tex | 183 +++ Presentation/beamerthemeNivoliev.sty | 65 + Presentation/presentation.tex | 83 + Presentation/ucblalgo.sty | 92 ++ 14 files changed, 2191 insertions(+), 39 deletions(-) create mode 100644 Presentation/Figures/hull.pdf create mode 100644 Presentation/Figures/hull.svg create mode 100644 Presentation/Figures/hull_aligned.pdf create mode 100644 Presentation/Figures/hull_aligned.svg create mode 100644 Presentation/Figures/hull_sort.pdf create mode 100644 Presentation/Figures/increment_hull_1.pdf create mode 100644 Presentation/Figures/increment_hull_2.pdf create mode 100644 Presentation/Figures/increment_hull_3.pdf create mode 100644 Presentation/Figures/partial_hull.pdf create mode 100644 Presentation/beamer_preamble.tex create mode 100644 Presentation/beamerthemeNivoliev.sty create mode 100644 Presentation/presentation.tex create mode 100644 Presentation/ucblalgo.sty diff --git a/Code/hull.cpp b/Code/hull.cpp index 9a467ff..25249b6 100644 --- a/Code/hull.cpp +++ b/Code/hull.cpp @@ -10,6 +10,8 @@ #include <sstream> #include <cmath> +//{{{ struct vec + struct vec { vec(float x, float y) : x(x), y(y) {} float x ; @@ -36,33 +38,23 @@ struct vec { } } ; -using rational = boost::multiprecision::cpp_rational ; +//}}} -template<typename number = rational> int orient(const vec& v0, const vec& v1) { - number v0x = v0.x ; - number v0y = v0.y ; - number v1x = v1.x ; - number v1y = v1.y ; + //determinant + float d = v0.x*v1.y - v0.y*v1.x ; - number d = v0x*v1y - v0y*v1x ; + //encode as sign if(d > 0) return 1 ; if(d < 0) return -1 ; - std::cout << "zero case" << std::endl ; - //return 0 ; - if(v1y > 0) return 1 ; - if(v1y < 0) return -1 ; - if(v1x > 0) return -1 ; - if(v1x < 0) return 1 ; - if(v0y > 0) return -1 ; - if(v0y < 0) return 1 ; - if(v0x > 0) return 1 ; - if(v0y < 0) return -1 ; - return 1 ; + return 0 ; } struct vec_compare { + //functor given leftmost point for sort vec_compare(const vec& origin) : origin(origin) {} + + //comparison bool operator()(const vec& p0, const vec& p1) { int o = orient(p0-origin, p1-origin) ; return o < 0 ; @@ -70,6 +62,8 @@ struct vec_compare { const vec& origin ; } ; +//{{{leftmost + size_t leftmost(const std::vector<vec>& points) { size_t min = 0 ; for(size_t i = 1; i < points.size(); ++i) { @@ -80,18 +74,26 @@ size_t leftmost(const std::vector<vec>& points) { return min ; } +//}}} + void compute_hull(std::vector<vec>& points, std::vector<vec>& hull) { + //leftmost point ahead size_t l = leftmost(points) ; std::swap(*points.begin(), *(points.begin() + l)) ; + //sort the rest by angle std::sort(points.begin() + 1, points.end(), vec_compare(points[0])) ; + //add the first two points to the hull hull.push_back(points[0]) ; hull.push_back(points[1]) ; + //sweep the remaining points for(size_t i = 2; i < points.size(); ++i) { + //check whether the last segment creates a wrong turn const vec& p = points[i] ; vec v1 = p - *(hull.end() - 1) ; vec v2 = *(hull.end() - 1) - *(hull.end() - 2) ; while(hull.size() > 1 && orient(v1, v2) < 0) { + //in case of wrong turn, rease the last point of the hull and iterate hull.erase(hull.end() - 1) ; v1 = p - *(hull.end() - 1) ; v2 = p - *(hull.end() - 2) ; @@ -100,6 +102,8 @@ void compute_hull(std::vector<vec>& points, std::vector<vec>& hull) { } } +//{{{ generate svg + void svg_hull(const std::string& filename, const std::vector<vec>& points, const std::vector<vec>& hull) { std::ofstream file(filename) ; SvgPad svg(file, 1024, 1024) ; @@ -118,12 +122,33 @@ void svg_hull(const std::string& filename, const std::vector<vec>& points, const svg.close() ; } +void svg_sort(const std::string& filename, const std::vector<vec>& points) { + std::ofstream file(filename) ; + SvgPad svg(file, 1024, 1024) ; + svg.open() ; + + float col0[3] = { 1., 0.9, 0.3 } ; + float col1[3] = { 0.35, 0.2, 0.4 } ; + for(size_t i = 1; i < points.size(); ++i) { + float b = ((float) i-1) / (points.size() - 1) ; + float a = 1-b ; + svg.stroke(a*col0[0] + b*col1[0], a*col0[1] + b*col1[1], a*col0[2] + b*col1[2]) ; + svg.line(points[0].x, points[0].y, points[i].x, points[i].y) ; + } + + svg.close() ; +} + +//}}} + int main() { unsigned int size = 100 ; + //{{{ random test { + //random numbers std::random_device rd ; std::mt19937 alea(rd()) ; std::uniform_real_distribution<float> uniform_float(0, 1) ; @@ -131,50 +156,42 @@ int main() { std::vector<vec> points ; for(unsigned int i = 0; i < size; ++i) { + //generate a uniform point in a ball vec p(normal_float(alea), normal_float(alea)) ; float n = sqrt(uniform_float(alea)) / 2 ; p = p * (n / p.length()) + vec(0.5,0.5); points.push_back(p) ; } + //hull std::vector<vec> hull ; compute_hull(points, hull) ; - svg_hull("/tmp/test_hull.svg", points, hull) ; + svg_hull("/tmp/hull_test.svg", points, hull) ; + svg_sort("/tmp/hull_lines.svg", points) ; } - { - unsigned int subdivisions = 30 ; - float near = 127 ; - float mid = 0.5 ; - for(unsigned int ratio = 1; ratio < subdivisions; ++ratio) { - std::vector<vec> points ; - points.emplace_back(1, 0) ; - points.emplace_back(0, 0) ; - points.emplace_back(mid, 1) ; - points.emplace_back(mid/near, 1./near) ; - points.emplace_back(mid/near + (mid - 1./near) * ((float) ratio) / subdivisions, 1./near + (1 - 2./near) * ((float) ratio) / subdivisions) ; - - std::vector<vec> hull ; - compute_hull(points, hull) ; - std::stringstream fname ; - fname << "/tmp/pbm_hull" << ratio << ".svg" ; - svg_hull(fname.str(), points, hull) ; - } - } + //}}} + + //{{{ wicked test { std::vector<vec> points ; + //aligned points points.emplace_back(0, 0.5) ; points.emplace_back(0, 1) ; points.emplace_back(0, 0) ; points.emplace_back(0, 0.8) ; + //make the hull non flat points.emplace_back(1, 0.5) ; + //hull std::vector<vec> hull ; compute_hull(points, hull) ; - svg_hull("/tmp/ordered.svg", points, hull) ; + svg_hull("/tmp/hull_aligned.svg", points, hull) ; } + //}}} + return 0 ; } diff --git a/Presentation/Figures/hull.pdf b/Presentation/Figures/hull.pdf new file mode 100644 index 0000000000000000000000000000000000000000..df58a760afc4eb7f936bd737d773fdb24a16f995 GIT binary patch literal 7992 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 literal 0 HcmV?d00001 diff --git a/Presentation/Figures/hull.svg b/Presentation/Figures/hull.svg new file mode 100644 index 0000000..7a44f37 --- /dev/null +++ b/Presentation/Figures/hull.svg @@ -0,0 +1,1695 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="1024" + width="1024" + version="1.1" + id="svg1890" + sodipodi:docname="hull.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14"> + <metadata + id="metadata1896"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs1894"> + <marker + inkscape:stockid="Arrow2Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Send" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2197" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#f57900;stroke-opacity:1;fill:#f57900;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.3) rotate(180) translate(-2.3,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2191" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#f57900;stroke-opacity:1;fill:#f57900;fill-opacity:1" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview1892" + showgrid="false" + inkscape:zoom="1.3796869" + inkscape:cx="454.51793" + inkscape:cy="483.23057" + inkscape:current-layer="layer6" + inkscape:snap-object-midpoints="true" /> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="sort" + style="display:inline"> + <g + id="g2447"> + <line + id="line2142" + y2="409" + x2="75" + y1="481" + x1="56" + style="stroke:#ffe64c;stroke-width:2" /> + <line + id="line2144" + y2="286" + x2="149" + y1="481" + x1="56" + style="stroke:#fee44d;stroke-width:2" /> + <line + id="line2146" + y2="180" + x2="204" + y1="481" + x1="56" + style="stroke:#fce24d;stroke-width:2" /> + <line + id="line2148" + y2="225" + x2="190" + y1="481" + x1="56" + style="stroke:#fae04d;stroke-width:2" /> + <line + id="line2150" + y2="238" + x2="196" + y1="481" + x1="56" + style="stroke:#f9df4d;stroke-width:2" /> + <line + id="line2152" + y2="329" + x2="153" + y1="481" + x1="56" + style="stroke:#f7dd4e;stroke-width:2" /> + <line + id="line2154" + y2="213" + x2="256" + y1="481" + x1="56" + style="stroke:#f5db4e;stroke-width:2" /> + <line + id="line2156" + y2="244" + x2="234" + y1="481" + x1="56" + style="stroke:#f4d94e;stroke-width:2" /> + <line + id="line2158" + y2="391" + x2="133" + y1="481" + x1="56" + style="stroke:#f2d74e;stroke-width:2" /> + <line + id="line2160" + y2="367" + x2="158" + y1="481" + x1="56" + style="stroke:#f0d64f;stroke-width:2" /> + <line + id="line2162" + y2="300" + x2="249" + y1="481" + x1="56" + style="stroke:#efd44f;stroke-width:2" /> + <line + id="line2164" + y2="193" + x2="412" + y1="481" + x1="56" + style="stroke:#edd24f;stroke-width:2" /> + <line + id="line2166" + y2="132" + x2="531" + y1="481" + x1="56" + style="stroke:#ebd04f;stroke-width:2" /> + <line + id="line2168" + y2="80" + x2="628" + y1="481" + x1="56" + style="stroke:#eace50;stroke-width:2" /> + <line + id="line2170" + y2="221" + x2="434" + y1="481" + x1="56" + style="stroke:#e8cd50;stroke-width:2" /> + <line + id="line2172" + y2="135" + x2="623" + y1="481" + x1="56" + style="stroke:#e6cb50;stroke-width:2" /> + <line + id="line2174" + y2="100" + x2="685" + y1="481" + x1="56" + style="stroke:#e5c950;stroke-width:2" /> + <line + id="line2176" + y2="242" + x2="462" + y1="481" + x1="56" + style="stroke:#e3c751;stroke-width:2" /> + <line + id="line2178" + y2="190" + x2="607" + y1="481" + x1="56" + style="stroke:#e1c551;stroke-width:2" /> + <line + id="line2180" + y2="366" + x2="274" + y1="481" + x1="56" + style="stroke:#e0c451;stroke-width:2" /> + <line + id="line2182" + y2="212" + x2="619" + y1="481" + x1="56" + style="stroke:#dec251;stroke-width:2" /> + <line + id="line2184" + y2="257" + x2="539" + y1="481" + x1="56" + style="stroke:#dcc052;stroke-width:2" /> + <line + id="line2186" + y2="259" + x2="590" + y1="481" + x1="56" + style="stroke:#dbbe52;stroke-width:2" /> + <line + id="line2188" + y2="196" + x2="764" + y1="481" + x1="56" + style="stroke:#d9bc52;stroke-width:2" /> + <line + id="line2190" + y2="199" + x2="771" + y1="481" + x1="56" + style="stroke:#d7ba53;stroke-width:2" /> + <line + id="line2192" + y2="211" + x2="741" + y1="481" + x1="56" + style="stroke:#d5b953;stroke-width:2" /> + <line + id="line2194" + y2="262" + x2="667" + y1="481" + x1="56" + style="stroke:#d4b753;stroke-width:2" /> + <line + id="line2196" + y2="395" + x2="313" + y1="481" + x1="56" + style="stroke:#d2b553;stroke-width:2" /> + <line + id="line2198" + y2="255" + x2="766" + y1="481" + x1="56" + style="stroke:#d0b354;stroke-width:2" /> + <line + id="line2200" + y2="349" + x2="501" + y1="481" + x1="56" + style="stroke:#cfb154;stroke-width:2" /> + <line + id="line2202" + y2="382" + x2="421" + y1="481" + x1="56" + style="stroke:#cdb054;stroke-width:2" /> + <line + id="line2204" + y2="315" + x2="669" + y1="481" + x1="56" + style="stroke:#cbae54;stroke-width:2" /> + <line + id="line2206" + y2="329" + x2="684" + y1="481" + x1="56" + style="stroke:#caac55;stroke-width:2" /> + <line + id="line2208" + y2="322" + x2="727" + y1="481" + x1="56" + style="stroke:#c8aa55;stroke-width:2" /> + <line + id="line2210" + y2="317" + x2="798" + y1="481" + x1="56" + style="stroke:#c6a855;stroke-width:2" /> + <line + id="line2212" + y2="398" + x2="465" + y1="481" + x1="56" + style="stroke:#c5a755;stroke-width:2" /> + <line + id="line2214" + y2="466" + x2="144" + y1="481" + x1="56" + style="stroke:#c3a556;stroke-width:2" /> + <line + id="line2216" + y2="397" + x2="602" + y1="481" + x1="56" + style="stroke:#c1a356;stroke-width:2" /> + <line + id="line2218" + y2="412" + x2="523" + y1="481" + x1="56" + style="stroke:#c0a156;stroke-width:2" /> + <line + id="line2220" + y2="383" + x2="834" + y1="481" + x1="56" + style="stroke:#be9f56;stroke-width:2" /> + <line + id="line2222" + y2="406" + x2="870" + y1="481" + x1="56" + style="stroke:#bc9d57;stroke-width:2" /> + <line + id="line2224" + y2="443" + x2="729" + y1="481" + x1="56" + style="stroke:#bb9c57;stroke-width:2" /> + <line + id="line2226" + y2="438" + x2="953" + y1="481" + x1="56" + style="stroke:#b99a57;stroke-width:2" /> + <line + id="line2228" + y2="455" + x2="683" + y1="481" + x1="56" + style="stroke:#b79857;stroke-width:2" /> + <line + id="line2230" + y2="470" + x2="558" + y1="481" + x1="56" + style="stroke:#b69658;stroke-width:2" /> + <line + id="line2232" + y2="467" + x2="936" + y1="481" + x1="56" + style="stroke:#b49458;stroke-width:2" /> + <line + id="line2234" + y2="479" + x2="434" + y1="481" + x1="56" + style="stroke:#b29358;stroke-width:2" /> + <line + id="line2236" + y2="481" + x2="711" + y1="481" + x1="56" + style="stroke:#b19158;stroke-width:2" /> + <line + id="line2238" + y2="528" + x2="917" + y1="481" + x1="56" + style="stroke:#af8f59;stroke-width:2" /> + <line + id="line2240" + y2="516" + x2="690" + y1="481" + x1="56" + style="stroke:#ad8d59;stroke-width:2" /> + <line + id="line2242" + y2="544" + x2="893" + y1="481" + x1="56" + style="stroke:#ab8b59;stroke-width:2" /> + <line + id="line2244" + y2="574" + x2="772" + y1="481" + x1="56" + style="stroke:#aa8a59;stroke-width:2" /> + <line + id="line2246" + y2="561" + x2="595" + y1="481" + x1="56" + style="stroke:#a8885a;stroke-width:2" /> + <line + id="line2248" + y2="615" + x2="814" + y1="481" + x1="56" + style="stroke:#a6865a;stroke-width:2" /> + <line + id="line2250" + y2="627" + x2="830" + y1="481" + x1="56" + style="stroke:#a5845a;stroke-width:2" /> + <line + id="line2252" + y2="529" + x2="305" + y1="481" + x1="56" + style="stroke:#a3825b;stroke-width:2" /> + <line + id="line2254" + y2="599" + x2="624" + y1="481" + x1="56" + style="stroke:#a1815b;stroke-width:2" /> + <line + id="line2256" + y2="647" + x2="791" + y1="481" + x1="56" + style="stroke:#a07f5b;stroke-width:2" /> + <line + id="line2258" + y2="657" + x2="783" + y1="481" + x1="56" + style="stroke:#9e7d5b;stroke-width:2" /> + <line + id="line2260" + y2="608" + x2="575" + y1="481" + x1="56" + style="stroke:#9c7b5c;stroke-width:2" /> + <line + id="line2262" + y2="602" + x2="517" + y1="481" + x1="56" + style="stroke:#9b795c;stroke-width:2" /> + <line + id="line2264" + y2="644" + x2="624" + y1="481" + x1="56" + style="stroke:#99775c;stroke-width:2" /> + <line + id="line2266" + y2="714" + x2="790" + y1="481" + x1="56" + style="stroke:#97765c;stroke-width:2" /> + <line + id="line2268" + y2="562" + x2="310" + y1="481" + x1="56" + style="stroke:#96745d;stroke-width:2" /> + <line + id="line2270" + y2="778" + x2="857" + y1="481" + x1="56" + style="stroke:#94725d;stroke-width:2" /> + <line + id="line2272" + y2="744" + x2="752" + y1="481" + x1="56" + style="stroke:#92705d;stroke-width:2" /> + <line + id="line2274" + y2="597" + x2="346" + y1="481" + x1="56" + style="stroke:#916e5d;stroke-width:2" /> + <line + id="line2276" + y2="703" + x2="595" + y1="481" + x1="56" + style="stroke:#8f6d5e;stroke-width:2" /> + <line + id="line2278" + y2="800" + x2="814" + y1="481" + x1="56" + style="stroke:#8d6b5e;stroke-width:2" /> + <line + id="line2280" + y2="750" + x2="635" + y1="481" + x1="56" + style="stroke:#8c695e;stroke-width:2" /> + <line + id="line2282" + y2="697" + x2="520" + y1="481" + x1="56" + style="stroke:#8a675e;stroke-width:2" /> + <line + id="line2284" + y2="844" + x2="800" + y1="481" + x1="56" + style="stroke:#88655f;stroke-width:2" /> + <line + id="line2286" + y2="858" + x2="809" + y1="481" + x1="56" + style="stroke:#86645f;stroke-width:2" /> + <line + id="line2288" + y2="740" + x2="562" + y1="481" + x1="56" + style="stroke:#85625f;stroke-width:2" /> + <line + id="line2290" + y2="734" + x2="482" + y1="481" + x1="56" + style="stroke:#83605f;stroke-width:2" /> + <line + id="line2292" + y2="702" + x2="423" + y1="481" + x1="56" + style="stroke:#815e60;stroke-width:2" /> + <line + id="line2294" + y2="692" + x2="400" + y1="481" + x1="56" + style="stroke:#805c60;stroke-width:2" /> + <line + id="line2296" + y2="686" + x2="392" + y1="481" + x1="56" + style="stroke:#7e5b60;stroke-width:2" /> + <line + id="line2298" + y2="627" + x2="289" + y1="481" + x1="56" + style="stroke:#7c5960;stroke-width:2" /> + <line + id="line2300" + y2="900" + x2="714" + y1="481" + x1="56" + style="stroke:#7b5761;stroke-width:2" /> + <line + id="line2302" + y2="785" + x2="529" + y1="481" + x1="56" + style="stroke:#795561;stroke-width:2" /> + <line + id="line2304" + y2="876" + x2="606" + y1="481" + x1="56" + style="stroke:#775361;stroke-width:2" /> + <line + id="line2306" + y2="834" + x2="522" + y1="481" + x1="56" + style="stroke:#765162;stroke-width:2" /> + <line + id="line2308" + y2="675" + x2="302" + y1="481" + x1="56" + style="stroke:#745062;stroke-width:2" /> + <line + id="line2310" + y2="849" + x2="506" + y1="481" + x1="56" + style="stroke:#724e62;stroke-width:2" /> + <line + id="line2312" + y2="775" + x2="411" + y1="481" + x1="56" + style="stroke:#714c62;stroke-width:2" /> + <line + id="line2314" + y2="871" + x2="479" + y1="481" + x1="56" + style="stroke:#6f4a63;stroke-width:2" /> + <line + id="line2316" + y2="962" + x2="545" + y1="481" + x1="56" + style="stroke:#6d4863;stroke-width:2" /> + <line + id="line2318" + y2="629" + x2="204" + y1="481" + x1="56" + style="stroke:#6c4763;stroke-width:2" /> + <line + id="line2320" + y2="707" + x2="259" + y1="481" + x1="56" + style="stroke:#6a4563;stroke-width:2" /> + <line + id="line2322" + y2="847" + x2="364" + y1="481" + x1="56" + style="stroke:#684364;stroke-width:2" /> + <line + id="line2324" + y2="763" + x2="285" + y1="481" + x1="56" + style="stroke:#674164;stroke-width:2" /> + <line + id="line2326" + y2="893" + x2="382" + y1="481" + x1="56" + style="stroke:#653f64;stroke-width:2" /> + <line + id="line2328" + y2="907" + x2="346" + y1="481" + x1="56" + style="stroke:#633e64;stroke-width:2" /> + <line + id="line2330" + y2="740" + x2="177" + y1="481" + x1="56" + style="stroke:#623c65;stroke-width:2" /> + <line + id="line2332" + y2="792" + x2="194" + y1="481" + x1="56" + style="stroke:#603a65;stroke-width:2" /> + <line + id="line2334" + y2="745" + x2="149" + y1="481" + x1="56" + style="stroke:#5e3865;stroke-width:2" /> + <line + id="line2336" + y2="748" + x2="145" + y1="481" + x1="56" + style="stroke:#5c3665;stroke-width:2" /> + <line + id="line2338" + y2="528" + x2="64" + y1="481" + x1="56" + style="stroke:#5b3566;stroke-width:2" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="partial_hull" + style="display:inline"> + <circle + cx="56" + cy="481" + r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle1838-3" /> + <circle + cx="75" + cy="409" + r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle1838-6" /> + <circle + cx="204" + cy="180" + r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle1838-5" /> + <circle + cx="256" + cy="213" + r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle1838-35" /> + <circle + cx="249" + cy="300" + r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle1838-62" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:16, 16;stroke-dashoffset:0;stroke-opacity:1" + d="M 56,481 614.69257,8.9981087" + id="path2140" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 249,300 256,213 204,180 75,409 56,481" + id="path2142" + inkscape:connector-curvature="0" /> + </g> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="adding_point_1" + style="display:inline"> + <path + inkscape:connector-curvature="0" + id="path2434" + d="M 249,300 256,213 204,180 75,409 56,481" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + id="circle2437" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + r="12" + cy="481" + cx="56" /> + <circle + id="circle2439" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + r="12" + cy="409" + cx="75" /> + <circle + id="circle2441" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + r="12" + cy="180" + cx="204" /> + <circle + id="circle2443" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + r="12" + cy="213" + cx="256" /> + <circle + id="circle2445" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + r="12" + cy="300" + cx="249" /> + <circle + cx="412" + cy="193" + r="12" + style="display:inline;fill:#f57900;stroke:#f57900;stroke-width:2" + id="circle1838-62-9" /> + <path + style="display:inline;opacity:1;fill:#f57900;fill-opacity:1;stroke:#f57900;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 249,300 412,193" + id="path2160" + inkscape:connector-curvature="0" /> + <path + style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#f57900;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Send)" + d="m 286.70433,227.21216 c 0,6.93447 5.56889,12.58358 12.50265,12.68274 6.93376,0.0992 12.66193,-5.38837 12.86024,-12.32 0.19831,-6.93163 -4.18172,-9.66261 -12.13483,-13.0351" + id="path2162" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="adding_point_2" /> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="hull" + style="display:none"> + <circle + cx="56" + cy="481" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1830" /> + <line + style="stroke:#000000;stroke-width:2" + x1="56" + y1="481" + x2="75" + y2="409" + id="line1832" /> + <circle + cx="75" + cy="409" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1834" /> + <line + style="stroke:#000000;stroke-width:2" + x1="75" + y1="409" + x2="204" + y2="180" + id="line1836" /> + <circle + cx="204" + cy="180" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1838" /> + <line + style="stroke:#000000;stroke-width:2" + x1="204" + y1="180" + x2="628" + y2="80" + id="line1840" /> + <circle + cx="628" + cy="80" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1842" /> + <line + style="stroke:#000000;stroke-width:2" + x1="628" + y1="80" + x2="685" + y2="100" + id="line1844" /> + <circle + cx="685" + cy="100" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1846" /> + <line + style="stroke:#000000;stroke-width:2" + x1="685" + y1="100" + x2="771" + y2="199" + id="line1848" /> + <circle + cx="771" + cy="199" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1850" /> + <line + style="stroke:#000000;stroke-width:2" + x1="771" + y1="199" + x2="953" + y2="438" + id="line1852" /> + <circle + cx="953" + cy="438" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1854" /> + <line + style="stroke:#000000;stroke-width:2" + x1="953" + y1="438" + x2="857" + y2="778" + id="line1856" /> + <circle + cx="857" + cy="778" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1858" /> + <line + style="stroke:#000000;stroke-width:2" + x1="857" + y1="778" + x2="809" + y2="858" + id="line1860" /> + <circle + cx="809" + cy="858" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1862" /> + <line + style="stroke:#000000;stroke-width:2" + x1="809" + y1="858" + x2="714" + y2="900" + id="line1864" /> + <circle + cx="714" + cy="900" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1866" /> + <line + style="stroke:#000000;stroke-width:2" + x1="714" + y1="900" + x2="545" + y2="962" + id="line1868" /> + <circle + cx="545" + cy="962" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1870" /> + <line + style="stroke:#000000;stroke-width:2" + x1="545" + y1="962" + x2="346" + y2="907" + id="line1872" /> + <circle + cx="346" + cy="907" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1874" /> + <line + style="stroke:#000000;stroke-width:2" + x1="346" + y1="907" + x2="194" + y2="792" + id="line1876" /> + <circle + cx="194" + cy="792" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1878" /> + <line + style="stroke:#000000;stroke-width:2" + x1="194" + y1="792" + x2="145" + y2="748" + id="line1880" /> + <circle + cx="145" + cy="748" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1882" /> + <line + style="stroke:#000000;stroke-width:2" + x1="145" + y1="748" + x2="64" + y2="528" + id="line1884" /> + <circle + cx="64" + cy="528" + r="12" + style="fill:none;stroke:#000000;stroke-width:2" + id="circle1886" /> + <line + style="stroke:#000000;stroke-width:2" + x1="64" + y1="528" + x2="56" + y2="481" + id="line1888" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="points" + style="display:inline"> + <circle + style="fill:#000000" + cx="56" + cy="481" + r="8" + id="circle1630" /> + <circle + style="fill:#000000" + cx="75" + cy="409" + r="8" + id="circle1632" /> + <circle + style="fill:#000000" + cx="149" + cy="286" + r="8" + id="circle1634" /> + <circle + style="fill:#000000" + cx="204" + cy="180" + r="8" + id="circle1636" /> + <circle + style="fill:#000000" + cx="190" + cy="225" + r="8" + id="circle1638" /> + <circle + style="fill:#000000" + cx="196" + cy="238" + r="8" + id="circle1640" /> + <circle + style="fill:#000000" + cx="153" + cy="329" + r="8" + id="circle1642" /> + <circle + style="fill:#000000" + cx="256" + cy="213" + r="8" + id="circle1644" /> + <circle + style="fill:#000000" + cx="234" + cy="244" + r="8" + id="circle1646" /> + <circle + style="fill:#000000" + cx="133" + cy="391" + r="8" + id="circle1648" /> + <circle + style="fill:#000000" + cx="158" + cy="367" + r="8" + id="circle1650" /> + <circle + style="fill:#000000" + cx="249" + cy="300" + r="8" + id="circle1652" /> + <circle + style="fill:#000000" + cx="412" + cy="193" + r="8" + id="circle1654" /> + <circle + style="fill:#000000" + cx="531" + cy="132" + r="8" + id="circle1656" /> + <circle + style="fill:#000000" + cx="628" + cy="80" + r="8" + id="circle1658" /> + <circle + style="fill:#000000" + cx="434" + cy="221" + r="8" + id="circle1660" /> + <circle + style="fill:#000000" + cx="623" + cy="135" + r="8" + id="circle1662" /> + <circle + style="fill:#000000" + cx="685" + cy="100" + r="8" + id="circle1664" /> + <circle + style="fill:#000000" + cx="462" + cy="242" + r="8" + id="circle1666" /> + <circle + style="fill:#000000" + cx="607" + cy="190" + r="8" + id="circle1668" /> + <circle + style="fill:#000000" + cx="274" + cy="366" + r="8" + id="circle1670" /> + <circle + style="fill:#000000" + cx="619" + cy="212" + r="8" + id="circle1672" /> + <circle + style="fill:#000000" + cx="539" + cy="257" + r="8" + id="circle1674" /> + <circle + style="fill:#000000" + cx="590" + cy="259" + r="8" + id="circle1676" /> + <circle + style="fill:#000000" + cx="764" + cy="196" + r="8" + id="circle1678" /> + <circle + style="fill:#000000" + cx="771" + cy="199" + r="8" + id="circle1680" /> + <circle + style="fill:#000000" + cx="741" + cy="211" + r="8" + id="circle1682" /> + <circle + style="fill:#000000" + cx="667" + cy="262" + r="8" + id="circle1684" /> + <circle + style="fill:#000000" + cx="313" + cy="395" + r="8" + id="circle1686" /> + <circle + style="fill:#000000" + cx="766" + cy="255" + r="8" + id="circle1688" /> + <circle + style="fill:#000000" + cx="501" + cy="349" + r="8" + id="circle1690" /> + <circle + style="fill:#000000" + cx="421" + cy="382" + r="8" + id="circle1692" /> + <circle + style="fill:#000000" + cx="669" + cy="315" + r="8" + id="circle1694" /> + <circle + style="fill:#000000" + cx="684" + cy="329" + r="8" + id="circle1696" /> + <circle + style="fill:#000000" + cx="727" + cy="322" + r="8" + id="circle1698" /> + <circle + style="fill:#000000" + cx="798" + cy="317" + r="8" + id="circle1700" /> + <circle + style="fill:#000000" + cx="465" + cy="398" + r="8" + id="circle1702" /> + <circle + style="fill:#000000" + cx="144" + cy="466" + r="8" + id="circle1704" /> + <circle + style="fill:#000000" + cx="602" + cy="397" + r="8" + id="circle1706" /> + <circle + style="fill:#000000" + cx="523" + cy="412" + r="8" + id="circle1708" /> + <circle + style="fill:#000000" + cx="834" + cy="383" + r="8" + id="circle1710" /> + <circle + style="fill:#000000" + cx="870" + cy="406" + r="8" + id="circle1712" /> + <circle + style="fill:#000000" + cx="729" + cy="443" + r="8" + id="circle1714" /> + <circle + style="fill:#000000" + cx="953" + cy="438" + r="8" + id="circle1716" /> + <circle + style="fill:#000000" + cx="683" + cy="455" + r="8" + id="circle1718" /> + <circle + style="fill:#000000" + cx="558" + cy="470" + r="8" + id="circle1720" /> + <circle + style="fill:#000000" + cx="936" + cy="467" + r="8" + id="circle1722" /> + <circle + style="fill:#000000" + cx="434" + cy="479" + r="8" + id="circle1724" /> + <circle + style="fill:#000000" + cx="711" + cy="481" + r="8" + id="circle1726" /> + <circle + style="fill:#000000" + cx="917" + cy="528" + r="8" + id="circle1728" /> + <circle + style="fill:#000000" + cx="690" + cy="516" + r="8" + id="circle1730" /> + <circle + style="fill:#000000" + cx="893" + cy="544" + r="8" + id="circle1732" /> + <circle + style="fill:#000000" + cx="772" + cy="574" + r="8" + id="circle1734" /> + <circle + style="fill:#000000" + cx="595" + cy="561" + r="8" + id="circle1736" /> + <circle + style="fill:#000000" + cx="814" + cy="615" + r="8" + id="circle1738" /> + <circle + style="fill:#000000" + cx="830" + cy="627" + r="8" + id="circle1740" /> + <circle + style="fill:#000000" + cx="305" + cy="529" + r="8" + id="circle1742" /> + <circle + style="fill:#000000" + cx="624" + cy="599" + r="8" + id="circle1744" /> + <circle + style="fill:#000000" + cx="791" + cy="647" + r="8" + id="circle1746" /> + <circle + style="fill:#000000" + cx="783" + cy="657" + r="8" + id="circle1748" /> + <circle + style="fill:#000000" + cx="575" + cy="608" + r="8" + id="circle1750" /> + <circle + style="fill:#000000" + cx="517" + cy="602" + r="8" + id="circle1752" /> + <circle + style="fill:#000000" + cx="624" + cy="644" + r="8" + id="circle1754" /> + <circle + style="fill:#000000" + cx="790" + cy="714" + r="8" + id="circle1756" /> + <circle + style="fill:#000000" + cx="310" + cy="562" + r="8" + id="circle1758" /> + <circle + style="fill:#000000" + cx="857" + cy="778" + r="8" + id="circle1760" /> + <circle + style="fill:#000000" + cx="752" + cy="744" + r="8" + id="circle1762" /> + <circle + style="fill:#000000" + cx="346" + cy="597" + r="8" + id="circle1764" /> + <circle + style="fill:#000000" + cx="595" + cy="703" + r="8" + id="circle1766" /> + <circle + style="fill:#000000" + cx="814" + cy="800" + r="8" + id="circle1768" /> + <circle + style="fill:#000000" + cx="635" + cy="750" + r="8" + id="circle1770" /> + <circle + style="fill:#000000" + cx="520" + cy="697" + r="8" + id="circle1772" /> + <circle + style="fill:#000000" + cx="800" + cy="844" + r="8" + id="circle1774" /> + <circle + style="fill:#000000" + cx="809" + cy="858" + r="8" + id="circle1776" /> + <circle + style="fill:#000000" + cx="562" + cy="740" + r="8" + id="circle1778" /> + <circle + style="fill:#000000" + cx="482" + cy="734" + r="8" + id="circle1780" /> + <circle + style="fill:#000000" + cx="423" + cy="702" + r="8" + id="circle1782" /> + <circle + style="fill:#000000" + cx="400" + cy="692" + r="8" + id="circle1784" /> + <circle + style="fill:#000000" + cx="392" + cy="686" + r="8" + id="circle1786" /> + <circle + style="fill:#000000" + cx="289" + cy="627" + r="8" + id="circle1788" /> + <circle + style="fill:#000000" + cx="714" + cy="900" + r="8" + id="circle1790" /> + <circle + style="fill:#000000" + cx="529" + cy="785" + r="8" + id="circle1792" /> + <circle + style="fill:#000000" + cx="606" + cy="876" + r="8" + id="circle1794" /> + <circle + style="fill:#000000" + cx="522" + cy="834" + r="8" + id="circle1796" /> + <circle + style="fill:#000000" + cx="302" + cy="675" + r="8" + id="circle1798" /> + <circle + style="fill:#000000" + cx="506" + cy="849" + r="8" + id="circle1800" /> + <circle + style="fill:#000000" + cx="411" + cy="775" + r="8" + id="circle1802" /> + <circle + style="fill:#000000" + cx="479" + cy="871" + r="8" + id="circle1804" /> + <circle + style="fill:#000000" + cx="545" + cy="962" + r="8" + id="circle1806" /> + <circle + style="fill:#000000" + cx="204" + cy="629" + r="8" + id="circle1808" /> + <circle + style="fill:#000000" + cx="259" + cy="707" + r="8" + id="circle1810" /> + <circle + style="fill:#000000" + cx="364" + cy="847" + r="8" + id="circle1812" /> + <circle + style="fill:#000000" + cx="285" + cy="763" + r="8" + id="circle1814" /> + <circle + style="fill:#000000" + cx="382" + cy="893" + r="8" + id="circle1816" /> + <circle + style="fill:#000000" + cx="346" + cy="907" + r="8" + id="circle1818" /> + <circle + style="fill:#000000" + cx="177" + cy="740" + r="8" + id="circle1820" /> + <circle + style="fill:#000000" + cx="194" + cy="792" + r="8" + id="circle1822" /> + <circle + style="fill:#000000" + cx="149" + cy="745" + r="8" + id="circle1824" /> + <circle + style="fill:#000000" + cx="145" + cy="748" + r="8" + id="circle1826" /> + <circle + style="fill:#000000" + cx="64" + cy="528" + r="8" + id="circle1828" /> + </g> +</svg> diff --git a/Presentation/Figures/hull_aligned.pdf b/Presentation/Figures/hull_aligned.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01056c98356355dd5ecbad756eb9f383f1703f53 GIT binary patch literal 1538 zcmY!laB<T$)HCH$-THRjZ!QxB1BLvgEG`=x1%02?y!4U`1yi6<5SN02g1%d3PDyGJ zkj_agNp(q0&QD3@va{nVE-6Y)%;l<>(;9lRPsEUC?{n=x%q=;gp0PU>6bmIRl=xNz z_;a6?VdMK_=eOsG<Se(vD^GdfJokChbwQ?odpm!usBZpzbMFp=Z*_KuZs#+~)$a_d zxuvk3>Ab@0SH(U7i|&78`N^@v)b7EnmY6>irE}Gj--}GkJNo*;_iI;{n{l?T4)%9Y zaObaPpL~_`dh27?z<RFqJ{A3B$LytN=UZ7Xf4)3(-I<w&`+Hc|o<ADNso!33;I;O# zNshkl>y2AyZRR&_pSAtp)HxCvVl7J_Jv!NOXdYL2e43hRs_?V}E2lo-eds=q`}WMf zOVewT?&f+Y+2;5s8Jngo_$e^0=1A~`JZa(VO>;X<XKY|ev)iNCGU;Vs+unW4>I<WO z+ZAxV2+P=5_-`jmiT;)gkDZtO>zEv}m&ci{#Qe&7GhU0l_IV*6oiw=1X7N<BaX;j~ z|Iz<F<7$Tef^`S}%fCAv&S7_;Jp6(39tWAQFD{uHS2-Bh&$j=@?Db7kZbn3y;)%WT zJMKPW@Tk6J-8xrh{l=w=?q4qoo=INzq{XiK>J94|YuuLe96$fz!9TC2W<KV~@6Rvi z7Iz*mwiYO!IDO-St!jP+Po5u%F;aJSn`69p4LEp$x3x=XMoQdY%Q*9duY7aqcAnsV zjz_$!Hw%a|OWJ0wF+4J9gGro?WM=`#k^apxrmU;o9lvz&FNK6sr0~-E<r-PaRU7}8 zTP#~8m~*kuJ!f|4)?7(}LqVb+Q&c`F8{AUt+?{FM94UHFpzb11SLoKMb^d|%ze5%N z1*(4)ay-QSmF0b2sOR&hEt42I+j*R(b6h=TqcWjAp@w74)Hf=^j!~WsPo4k1GTT}t z9d%OutH&XyIcm<AyqtfeJ@&m6?8?=DviUc2pvJi!T&Z~}(9{WJfzmZ7F@tDeayB!y z1j&PV#_&`RPUo%_CGNo`z%;I4V*?TZ0{uh-AV)#p*-^nzK|eVWNCHznPy$E-5!4(b zxH$^?A(aKG3i<(w>8T2;3Wi{F0}_i;^GbkPVHwIdH6=6ADZfG?8YpC-U~Xms#<5`4 z&iQ#IK;^{>pgal5fbK>4r3FZig4h8Tg}E~rXme3wUU31)uH;IXu%|*vQE4iS=L}Tk zl3JFToEqfr1QLY!ML#IDIKQ+gIki{;6e2-LJ_ETKRxTiXRt(as@12=a4D<oW^FazQ zx0ixEie!Kpk^uol`6;Ezz>-8GIWe;+U%^n%&|J@0K_jE2q@dVJ9~itq(e$Fkf{e`M zV!iyLbWKgLMb5x-rX({z&jl1U8ZK5w28Nb~hK3e~h9+jl7TN}e>IMdyNOqbd*$Hv9 zb7DziPJTMrG*HwOLn8wbg%w4qX<P;h7F-5!08A;S#-<8s3Q#da12bUofPg|COw7Q- z1emnY#LUex)fpIKQD+JaUR1q?hDH_`Vn!ywqySS_Qk0mPlUf8Wse?1CQh`neMMhA5 oeu)Ce<B$~NnU|KY01A6>WEPhs7L|Z~XlP_<#-*z2>hHz{0Jx|U*8l(j literal 0 HcmV?d00001 diff --git a/Presentation/Figures/hull_aligned.svg b/Presentation/Figures/hull_aligned.svg new file mode 100644 index 0000000..c0a54c2 --- /dev/null +++ b/Presentation/Figures/hull_aligned.svg @@ -0,0 +1,17 @@ +<svg height="1024" width="1024"> +<circle cx="51" cy="512" r="8" fill="rgb(0, 0, 0)" /> +<circle cx="51" cy="51" r="8" fill="rgb(0, 0, 0)" /> +<circle cx="51" cy="973" r="8" fill="rgb(0, 0, 0)" /> +<circle cx="51" cy="235" r="8" fill="rgb(0, 0, 0)" /> +<circle cx="973" cy="512" r="8" fill="rgb(0, 0, 0)" /> +<circle cx="51" cy="512" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/> +<line x1="51" y1="512" x2="51" y2="51" stroke="rgb(0, 0, 0)" stroke-width="2"/> +<circle cx="51" cy="51" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/> +<line x1="51" y1="51" x2="51" y2="973" stroke="rgb(0, 0, 0)" stroke-width="2"/> +<circle cx="51" cy="973" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/> +<line x1="51" y1="973" x2="51" y2="235" stroke="rgb(0, 0, 0)" stroke-width="2"/> +<circle cx="51" cy="235" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/> +<line x1="51" y1="235" x2="973" y2="512" stroke="rgb(0, 0, 0)" stroke-width="2"/> +<circle cx="973" cy="512" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/> +<line x1="973" y1="512" x2="51" y2="512" stroke="rgb(0, 0, 0)" stroke-width="2"/> +</svg> diff --git a/Presentation/Figures/hull_sort.pdf b/Presentation/Figures/hull_sort.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3790fd9a497435cbf453740384bc81c9774665d2 GIT binary patch literal 8516 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 Th(8*N@{0)Kv9QRiE8zVP)I`=g literal 0 HcmV?d00001 diff --git a/Presentation/Figures/increment_hull_1.pdf b/Presentation/Figures/increment_hull_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..542821b19c75bcf689b94aaa01d6d89daee95a56 GIT binary patch literal 9126 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 DN+1%^ literal 0 HcmV?d00001 diff --git a/Presentation/Figures/increment_hull_2.pdf b/Presentation/Figures/increment_hull_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..81c9cd8ae904bd96feba2eed624ff89183be81ef GIT binary patch literal 9055 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 N3q)sRlv9;Q|36rp>Er+a literal 0 HcmV?d00001 diff --git a/Presentation/Figures/increment_hull_3.pdf b/Presentation/Figures/increment_hull_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..52bbbd42052d101ff4aefec0b6ba27b3022c8037 GIT binary patch literal 9009 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 QMMZ=~aG9AEG!$|F4>%m@L;wH) literal 0 HcmV?d00001 diff --git a/Presentation/Figures/partial_hull.pdf b/Presentation/Figures/partial_hull.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0196d8ec1e3ceef7e4ed95603f3ffc0a9ee33af2 GIT binary patch literal 8884 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 W0=4vj{^3wqke?S92$a`U!2Lfk5TtSd literal 0 HcmV?d00001 diff --git a/Presentation/beamer_preamble.tex b/Presentation/beamer_preamble.tex new file mode 100644 index 0000000..b87fe3d --- /dev/null +++ b/Presentation/beamer_preamble.tex @@ -0,0 +1,183 @@ +\documentclass[french,pdftex]{beamer} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[rm={oldstyle=false}, sf={oldstyle=false}, tt={oldstyle=false}]{cfr-lm} +\usetheme[compress]{Nivoliev} +\usepackage{tabularx} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{tikz} +\usepackage{amsmath, amssymb, amsfonts} +\usepackage{mathrsfs} +\usepackage{amsthm} +\usepackage{verbatim} +\usepackage{color} +\usepackage{colortbl} +\usepackage{multimedia} +\usepackage{listings} +\usepackage{multimedia} +\usepackage{xparse} +\usepackage{comment} +\usepackage{animate} + +\setbeamersize{text margin left=0.5cm} +\setbeamersize{text margin right=0.5cm} +\definecolor{thcolor}{rgb}{0.8,0.3,0} +\setbeamercolor{structure}{fg=thcolor} +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{enumerate items}[default] +\setbeamercovered{transparent} + +\lstset{breakatwhitespace, +basicstyle=\tiny\ttfamily, +columns=fullflexible, +keepspaces, +breaklines, +tabsize=3, +showstringspaces=false, +extendedchars=true} + +\setcounter{tocdepth}{1} + +\newcommand{\hl}[1]{\textcolor{structure}{#1}} +\newcommand{\lighten}{\xglobal\blendcolors*{!20!white}\color{black}} +\newcommand{\unlighten}{\xglobal\blendcolors{}\color{black}} + +\newcommand{\li}{\linewidth} + +%{fold} minipages + +\newcommand{\minip}[2]{ + \begin{minipage}[c]{#1\linewidth} + #2 + \end{minipage} +} + +\newcommand{\cminip}[2]{ + \begin{minipage}[c]{#1\linewidth} + \begin{center} + #2 + \end{center} + \end{minipage} +} + +%{endfold} + +%{fold} blocks + +%\newsavebox{\blockbox} +%\NewDocumentEnvironment{myblock}{O{} O{} m}% +%{% +% \sbox{\blockbox}\bgroup% +%} +%{% +% \egroup +% \begin{tikzpicture}% +% \draw% +% node[ drop shadow,% +% rounded corners,% +% draw, fill=white,% +% inner sep = 3mm,% +% #2% +% ] (#1) { +% \usebox{\blockbox} +% } ; +% \end{tikzpicture}% +%} + +\NewDocumentEnvironment{myblock}{O{} O{} m}% +{% + \begin{tikzpicture}% + \draw% + node[ drop shadow,% + rounded corners,% + draw, fill=white,% + inner sep = 3mm,% + #2% + ] (#1) \bgroup% + \begin{minipage}[c]{#3}% +} +{% + \end{minipage}% + \egroup + ; + \end{tikzpicture}% +} + +\NewDocumentEnvironment{myoverlayblock}{O{} O{} m m}% +{% + \begin{tikzpicture}[overlay]% + \draw #4% + node[ drop shadow,% + rounded corners,% + draw, fill=white,% + inner sep = 3mm,% + #2% + ]% + (#1) + \bgroup% + \begin{minipage}[c]{#3}% +} +{% + \end{minipage}% + \egroup ;% + \end{tikzpicture}% +} + +%{endfold} + +%{fold} Tikz +\everymath{\displaystyle} +\tikzstyle{every picture}+=[remember picture] +\usetikzlibrary{calc,fit,decorations.pathreplacing,decorations.pathmorphing,shadows} + +\tikzstyle{rounded boxed}=[thick, draw=black, fill=white, rounded corners] + +%blocks and arrows between them +\newcommand{\pin}[2]{ + \tikz[baseline]{ + \node[anchor=base,inner sep=0pt, outer sep=0pt, minimum height=1em] (#1) {#2}; + } +} +\newcommand{\back}[3]{ + \tikz[baseline]{ + \node[rectangle,rounded corners,anchor=base,fill=#2!10] (#1) {#3}; + } +} +\newcommand{\backcol}[3]{ + \tikz[baseline]{ + \node[very thin,rectangle,rounded corners,anchor=base,fill=#2] (#1) {#3}; + } +} +\newcommand{\arrow}[3]{ + \tikz[overlay]{ + \path[->] (#2) edge [#1] (#3); + } +} + +\newcommand{\tikzmark}[1]{ + \tikz[overlay,baseline=0pt]{ + \node [anchor=base, inner sep = 0pt, outer sep = 0pt] (#1) {}; + } +} +%{endfold} + +%{fold} listings + +\newcommand{\CodeSymbol}[1]{\textcolor{red}{#1}} + +\lstset{ + showspaces=false, + showstringspaces=false, + basicstyle=\footnotesize, + numbersep=0pt, + keywordstyle=\color{structure!90!black}, + belowskip=-0.8\baselineskip, + aboveskip=0pt, + escapechar=§ +} + +%{endfold} + +%\renewcommand\textbullet{\ensuremath{\bullet}} diff --git a/Presentation/beamerthemeNivoliev.sty b/Presentation/beamerthemeNivoliev.sty new file mode 100644 index 0000000..b52417f --- /dev/null +++ b/Presentation/beamerthemeNivoliev.sty @@ -0,0 +1,65 @@ +% Copyright 2007 by Vincent Nivoliers +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. + +\DeclareOptionBeamer{compress}{\beamer@compresstrue} +\ProcessOptionsBeamer + + +\mode<presentation> + +\setbeamercolor{section in head/foot}{use=structure,bg=structure.fg!25!bg} + +\useoutertheme[subsection=false]{miniframes} + +\useinnertheme[shadow=true]{rounded} + +\setbeamertemplate{frametitle}[default][center] + +\AtBeginDocument{% + { + \usebeamercolor{section in head/foot} + } + + \pgfdeclareverticalshading{beamer@headfade}{\paperwidth} + {% + color(0cm)=(bg); + color(1cm)=(section in head/foot.bg)% + } + + \pgfdeclareverticalshading{beamer@footfade}{\paperwidth} + {% + color(0cm)=(section in head/foot.bg); + color(2.5ex)=(bg)% + } + + \setbeamercolor{section in head/foot}{bg=} +} + +\addtoheadtemplate{\pgfuseshading{beamer@headfade}\vskip-1cm}{} + +\defbeamertemplate*{footline}{mytheme theme} +{ + \leavevmode% + \pgfuseshading{beamer@footfade}% + \vskip-3.5ex + \begin{beamercolorbox}[wd=\textwidth,ht=2.25ex,dp=1.25ex]{section in head/foot}% + \hspace{1em} + \insertshorttitle + \hfill + \insertauthor + \hfill + \insertframenumber{} $/$ \inserttotalframenumber + \hspace{1em} + \end{beamercolorbox} + \vskip0pt% +} + +\beamertemplatedotitem + +\mode<all> diff --git a/Presentation/presentation.tex b/Presentation/presentation.tex new file mode 100644 index 0000000..d70438f --- /dev/null +++ b/Presentation/presentation.tex @@ -0,0 +1,83 @@ +\input{beamer_preamble} + +\usepackage{ucblalgo} +\setbeamercovered{invisible} + +\newcommand{\vor}[1]{\ensuremath{\mathrm{Vor}(#1)}} +\newcommand{\site}{\mathbf{v}} +\newcommand{\sites}{\mathbf{V}} +\newcommand{\point}{\mathbf{p}} +\newcommand{\R}{\mathbb{R}} + +\title{Robustesse des algorithmes géométriques : \\ prédicats, filtrage et perturbation} + +\author{Vincent Nivoliers} + +\begin{document} + +\frame{ + \maketitle +} + + +\section{Enveloppe Convexe} + +\frame { + \frametitle{Enveloppe convexe} + \centering + \includegraphics[width=0.6\li]{Figures/hull.pdf} +} + +\frame { + \frametitle{1 -- trier par angle} + \centering + \includegraphics[width=0.6\li]{Figures/hull_sort.pdf} +} + +\frame { + \frametitle{2 -- balayage} + \centering + \only<1>{\includegraphics[width=0.6\li]{Figures/partial_hull.pdf}}% + \only<2>{\includegraphics[width=0.6\li]{Figures/increment_hull_1.pdf}}% + \only<3>{\includegraphics[width=0.6\li]{Figures/increment_hull_2.pdf}}% + \only<4>{\includegraphics[width=0.6\li]{Figures/increment_hull_3.pdf}}% + \only<5>{\includegraphics[width=0.6\li]{Figures/hull.pdf}}% +} + +\frame { + \frametitle{Robustesse : alignements de points} + \centering + \includegraphics[width=0.6\li]{Figures/hull_aligned.pdf} +} + +\frame { + \frametitle{Algorithme} + \centering + \begin{ucblalgo} + \SetKwData{pt}{p} + \SetKwData{hull}{enveloppe} + \Algorithme{ + déterminer le point le plus à gauche \; + \only<1>{trier les points par angle \;}% + \only<2>{\hl{trier les points par angle} \;} + $\hull \leftarrow$ une nouvelle pile\; + ajouter les deux premiers points à \hull \; + \PourCh{autre point \pt dans l'ordre}{ + $\pt_0 \leftarrow $ dernier point de l'\hull \; + $\pt_1 \leftarrow $ avant dernier point de l'\hull \; + \Tq{ + \only<1>{$(\pt_0\pt)$ tourne à gauche par rapport à $(\pt_1\pt)$}% + \only<2>{\hl{$(\pt_0\pt)$ tourne à gauche par rapport à $(\pt_1\pt)$}} + }{ + retirer le sommet de l'\hull \; + $\pt_0 \leftarrow $ dernier point de l'\hull \; + $\pt_1 \leftarrow $ avant dernier point de l'\hull \; + } + ajouter \pt à l'\hull \; + } + \Retour{l'\hull} \; + } + \end{ucblalgo} +} + +\end{document} diff --git a/Presentation/ucblalgo.sty b/Presentation/ucblalgo.sty new file mode 100644 index 0000000..e7353f6 --- /dev/null +++ b/Presentation/ucblalgo.sty @@ -0,0 +1,92 @@ +\ProvidesPackage{ucblalgo} +\RequirePackage[vlined, french, nofillcomment]{algorithm2e} +\RequirePackage{xstring} +\RequirePackage{ifthen} + +%\SetFuncSty{textsf}% +%\SetProcArgSty{textsf}% +%\SetFuncArgSty{textsf}% +%\SetArgSty{textrm}% +\SetCommentSty{}% + +\SetKw{vrai}{vrai} +\SetKw{faux}{faux} +\SetKw{tableau}{tableau} + +\SetKwInput{donres}{données-résultat} +\SetKwInput{donnee}{données} +\SetKwInput{resultat}{résultat} +\SetKwInput{variables}{variables} + +\SetKwFor{FonctionInner}{Fonction}{}{fin} +\SetKwFor{ProcedureInner}{Procédure}{}{fin} + +\newcommand{\algoname}[1]{% + \StrBefore{#1}{(}% +} + +\newcommand{\algoargs}[1]{% + (\StrBehind{#1}{(}% +} + +\newcommand{\Fonction}[2]{ + %\def\ucblalgoname{\algoname{#1}}% + %\def\ucblalgoargs{\algoargs{#1}}% + \SetKwFunction{#1}{#1}% + \FonctionInner{\expandafter\csname#1\endcsname{} \ifthenelse{\equal{#2}{}}{}{$\rightarrow$ #2}} +} +\newcommand{\ArgFonction}[3]{ + \SetKwFunction{#1}{#1}% + \FonctionInner{\expandafter\csname#1\endcsname{#2} \ifthenelse{\equal{#3}{}}{}{$\rightarrow$ #3}} +} +\newcommand{\Procedure}[1]{ + \SetKwFunction{#1}{#1}% + \ProcedureInner{\expandafter\csname#1\endcsname} +} + +\newlength{\forewordlen} +\newlength{\forewordantilen} + +\newenvironment{foreword}[1]{% + \settowidth{\forewordlen}{#1 : }% + \setlength{\forewordantilen}{\linewidth}% + \addtolength{\forewordantilen}{-\forewordlen}% + \begin{minipage}[t]{\forewordlen}% + #1 : % + \end{minipage}% + \begin{minipage}[t]{\forewordantilen}% +}{% + \end{minipage}% +} + +\newcommand{\precond}[1]{% + \begin{foreword}{précondition}% + \itshape{% + #1% + }% + \end{foreword}% +} + +\newcommand{\postcond}[1]{% + \begin{foreword}{postcondition}% + \itshape{% + #1% + }% + \end{foreword}% +} + +\newcommand{\incr}[1]{#1${+}{+}$} +\newcommand{\decr}[1]{#1${-}{-}$} + +\newenvironment{ucblalgo}[1][H]{% + \renewcommand{\algorithmcfname}{Algorithme}% + \IncMargin{0em}% + \DontPrintSemicolon% + \begin{algorithm}[#1]% + \SetKwBlock{Algorithme}{Algorithme}{Fin}% +}{% + \end{algorithm}% + \DecMargin{0em}% +} + +\endinput -- GitLab