From b155379587fd8573cbff37d3e2203f2d81f006c8 Mon Sep 17 00:00:00 2001 From: Vincent Nivoliers <vincent.nivoliers@univ-lyon1.fr> Date: Mon, 18 Nov 2019 13:35:06 +0100 Subject: [PATCH] presentation up to perturbation --- Code/hull.cpp | 16 +- Presentation/Figures/hull.svg | 289 +++++++++++++--- Presentation/Figures/orient.pdf | Bin 0 -> 6438 bytes Presentation/Figures/orient.svg | 396 ++++++++++++++++++++++ Presentation/Figures/sort_comparison.pdf | Bin 0 -> 8865 bytes Presentation/Figures/sweep_comparison.pdf | Bin 0 -> 9288 bytes Presentation/presentation.tex | 161 ++++++++- 7 files changed, 803 insertions(+), 59 deletions(-) create mode 100644 Presentation/Figures/orient.pdf create mode 100644 Presentation/Figures/orient.svg create mode 100644 Presentation/Figures/sort_comparison.pdf create mode 100644 Presentation/Figures/sweep_comparison.pdf diff --git a/Code/hull.cpp b/Code/hull.cpp index 25249b6..00c06ba 100644 --- a/Code/hull.cpp +++ b/Code/hull.cpp @@ -40,14 +40,18 @@ struct vec { //}}} +int sign(float x) { + if(x > 0) return 1 ; + if(x < 0) return -1 ; + return 0 ; +} + int orient(const vec& v0, const vec& v1) { //determinant float d = v0.x*v1.y - v0.y*v1.x ; //encode as sign - if(d > 0) return 1 ; - if(d < 0) return -1 ; - return 0 ; + return sign(d) ; } struct vec_compare { @@ -90,13 +94,13 @@ void compute_hull(std::vector<vec>& points, std::vector<vec>& hull) { 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 v1 = p - *(hull.end() - 2) ; 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) ; + v1 = p - *(hull.end() - 2) ; + v2 = *(hull.end() - 1) - *(hull.end() - 2) ; } hull.push_back(p) ; } diff --git a/Presentation/Figures/hull.svg b/Presentation/Figures/hull.svg index 7a44f37..e177c81 100644 --- a/Presentation/Figures/hull.svg +++ b/Presentation/Figures/hull.svg @@ -27,6 +27,92 @@ </metadata> <defs id="defs1894"> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker5177" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Send"> + <path + transform="scale(0.3) rotate(180) translate(-2.3,0)" + 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 " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + id="path5175" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker4465" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(0.6) rotate(180) translate(0,0)" + 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 " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + id="path4463" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker4219" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path4217" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;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> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path841" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;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) translate(0,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker3855" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(0.6) rotate(180) translate(0,0)" + 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 " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + id="path3853" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker3809" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path844" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;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> <marker inkscape:stockid="Arrow2Send" orient="auto" @@ -34,7 +120,8 @@ refX="0.0" id="Arrow2Send" style="overflow:visible;" - inkscape:isstock="true"> + inkscape:isstock="true" + inkscape:collect="always"> <path id="path2197" style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#f57900;stroke-opacity:1;fill:#f57900;fill-opacity:1" @@ -55,6 +142,21 @@ 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> + <marker + inkscape:stockid="Arrow2Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mstart-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path841-8" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + </marker> </defs> <sodipodi:namedview pagecolor="#ffffff" @@ -70,10 +172,11 @@ 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" /> + inkscape:cx="224.13977" + inkscape:cy="621.88734" + inkscape:current-layer="layer7" + inkscape:snap-object-midpoints="true" + inkscape:snap-global="true" /> <g inkscape:groupmode="layer" id="layer4" @@ -780,7 +883,7 @@ inkscape:groupmode="layer" id="layer6" inkscape:label="partial_hull" - style="display:inline"> + style="display:none"> <circle cx="56" cy="481" @@ -824,67 +927,68 @@ inkscape:connector-curvature="0" /> </g> <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="adding_point_1" - style="display:inline"> + style="display:none" + inkscape:label="adding_point_1 copy" + id="g4215" + inkscape:groupmode="layer"> <path - inkscape:connector-curvature="0" - id="path2434" + 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" - 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" /> + id="path4197" + inkscape:connector-curvature="0" /> <circle - id="circle2437" - style="display:inline;fill:none;stroke:#000000;stroke-width:2" - r="12" + cx="56" 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" /> + id="circle4199" /> <circle - id="circle2443" - style="display:inline;fill:none;stroke:#000000;stroke-width:2" + cx="75" + cy="409" r="12" - cy="213" - cx="256" /> + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle4201" /> <circle - id="circle2445" + cx="204" + cy="180" + r="12" style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle4203" /> + <circle + cx="256" + cy="213" r="12" - cy="300" - cx="249" /> + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle4205" /> <circle - cx="412" - cy="193" + cx="249" + cy="300" r="12" + style="display:inline;fill:none;stroke:#000000;stroke-width:2" + id="circle4207" /> + <circle + id="circle4209" style="display:inline;fill:#f57900;stroke:#f57900;stroke-width:2" - id="circle1838-62-9" /> + r="12" + cy="193" + cx="412" /> <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" + inkscape:connector-curvature="0" + id="path4211" d="M 249,300 412,193" - id="path2160" - inkscape:connector-curvature="0" /> + 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" /> <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" + sodipodi:nodetypes="cssc" inkscape:connector-curvature="0" - sodipodi:nodetypes="cssc" /> + id="path4213" + 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" + 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)" /> </g> <g inkscape:groupmode="layer" id="layer8" - inkscape:label="adding_point_2" /> + inkscape:label="adding_point_2" + style="display:none" /> <g inkscape:groupmode="layer" id="layer3" @@ -1086,6 +1190,101 @@ y2="481" id="line1888" /> </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="sort_comparison" + style="display:none"> + <path + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.9987402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker3855)" + d="m 56,481 239.39339,76.13113" + id="path3804" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.99900007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker3809)" + d="M 56,481 260.93093,372.66266" + id="path3806" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3.99900007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart)" + id="path3893" + sodipodi:type="arc" + sodipodi:cx="56" + sodipodi:cy="481" + sodipodi:rx="135.90041" + sodipodi:ry="135.90041" + sodipodi:start="5.86421" + sodipodi:end="0.22218386" + sodipodi:open="true" + d="m 180.14588,425.71237 a 135.90041,135.90041 0 0 1 8.4139,85.23469" /> + </g> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="sweep_comparison" + 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:none;stroke:#000000;stroke-width:2" + id="circle1838-62-9" /> + <path + style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4219)" + d="M 256,213 392.52453,194.79379" + id="path2160" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4461" + d="m 256,213 -5.69769,68.15215" + style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4465)" /> + <path + style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3.99900007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart-2)" + d="m 298.36687,215.56256 c -0.20385,0.89626 -0.0234,1.65148 -0.0697,2.46886 -1.21336,21.43846 -17.36115,36.33106 -39.02351,37.97982" + id="path3893-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csc" /> + </g> <g inkscape:groupmode="layer" id="layer5" diff --git a/Presentation/Figures/orient.pdf b/Presentation/Figures/orient.pdf new file mode 100644 index 0000000000000000000000000000000000000000..58c981c49844eff5719425e51f55f833550ebacf GIT binary patch literal 6438 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 literal 0 HcmV?d00001 diff --git a/Presentation/Figures/orient.svg b/Presentation/Figures/orient.svg new file mode 100644 index 0000000..772fefe --- /dev/null +++ b/Presentation/Figures/orient.svg @@ -0,0 +1,396 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://www.iki.fi/pav/software/textext/" + 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" + width="114.63708mm" + height="57.568756mm" + viewBox="0 0 114.63708 57.568756" + version="1.1" + id="svg8" + inkscape:version="0.92.4 5da689c313, 2019-01-14" + sodipodi:docname="orient.svg"> + <defs + id="defs2"> + <marker + inkscape:stockid="Arrow2Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path847" + style="fill:#73d216;fill-opacity:1;fill-rule:evenodd;stroke:#73d216;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(0.3,0,0,0.3,-0.69,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="marker1657" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path1655" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path829" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(0.2,0,0,0.2,1.2,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1115" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1113" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path844" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path844-1" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1115-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1113-7" /> + </marker> + <marker + inkscape:stockid="Arrow2Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Sstart-0" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path847-9" + style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:#ef2929;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(0.3,0,0,0.3,-0.69,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4" + inkscape:cx="236.33847" + inkscape:cy="47.737009" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-global="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata5"> + <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> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-48.106519,-105.14661)"> + <g + id="g1917"> + <path + inkscape:connector-curvature="0" + id="path815" + d="M 48.643053,133.96559 H 89.268021" + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> + <path + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1115)" + d="M 48.643053,133.96559 78.397999,106.3064" + id="path1111" + inkscape:connector-curvature="0" /> + <path + d="m 65.353562,122.04938 a 20.524063,20.524063 0 0 1 3.744204,10.23045" + sodipodi:open="true" + sodipodi:end="6.2009568" + sodipodi:start="5.6637237" + sodipodi:ry="20.524063" + sodipodi:rx="20.524063" + sodipodi:cy="133.96559" + sodipodi:cx="48.643051" + sodipodi:type="arc" + id="path1513" + style="opacity:1;fill:none;fill-opacity:1;stroke:#73d216;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Sstart)" /> + <g + style="stroke-width:2.2442975" + transform="matrix(1.0284933,0,0,1.0284933,-90.069698,3.9616292)" + ns1:version="0.10.0" + ns1:texconverter="pdflatex" + ns1:pdfconverter="pdf2svg" + ns1:text="$\\mathbf{v}_0$" + ns1:preamble="/home/nivoliev/.config/inkscape/extensions/textext/default_packages.tex" + ns1:scale="6.54305795713" + ns1:alignment="middle center" + ns1:jacobian_sqrt="2.308245" + id="g1814"> + <g + style="stroke-width:2.2442975" + id="surface1"> + <g + style="fill:#000000;fill-opacity:1;stroke-width:2.2442975" + id="g1807"> + <path + inkscape:connector-curvature="0" + style="stroke:none;stroke-width:0" + d="m 5.046875,-3.75 c 0.0625,-0.140625 0.09375,-0.203125 0.734375,-0.203125 v -0.46875 C 5.53125,-4.40625 5.25,-4.390625 5,-4.390625 c -0.25,0 -0.703125,-0.03125 -0.90625,-0.03125 v 0.46875 c 0.1875,0 0.46875,0.03125 0.46875,0.109375 0,0 0,0.03125 -0.046875,0.109375 l -1.15625,2.5 -1.265625,-2.71875 H 2.625 v -0.46875 c -0.328125,0.015625 -1.21875,0.03125 -1.234375,0.03125 -0.28125,0 -0.71875,-0.03125 -1.125,-0.03125 v 0.46875 h 0.625 l 1.75,3.75 c 0.125,0.25 0.25,0.25 0.375,0.25 0.171875,0 0.28125,-0.03125 0.375,-0.25 z m 0,0" + transform="translate(148.712,134.765)" + id="path1805" /> + </g> + <g + style="fill:#000000;fill-opacity:1;stroke-width:2.2442975" + id="g1811"> + <path + inkscape:connector-curvature="0" + style="stroke:none;stroke-width:0" + d="M 3.59375,-2.21875 C 3.59375,-2.984375 3.5,-3.546875 3.1875,-4.03125 2.96875,-4.34375 2.53125,-4.625 1.984375,-4.625 c -1.625,0 -1.625,1.90625 -1.625,2.40625 0,0.5 0,2.359375 1.625,2.359375 1.609375,0 1.609375,-1.859375 1.609375,-2.359375 z M 1.984375,-0.0625 c -0.328125,0 -0.75,-0.1875 -0.890625,-0.75 C 1,-1.21875 1,-1.796875 1,-2.3125 1,-2.828125 1,-3.359375 1.09375,-3.734375 1.25,-4.28125 1.6875,-4.4375 1.984375,-4.4375 c 0.375,0 0.734375,0.234375 0.859375,0.640625 0.109375,0.375 0.125,0.875 0.125,1.484375 0,0.515625 0,1.03125 -0.09375,1.46875 -0.140625,0.640625 -0.609375,0.78125 -0.890625,0.78125 z m 0,0" + transform="translate(154.759,136.259)" + id="path1809" /> + </g> + </g> + </g> + <g + transform="matrix(1.028493,0,0,1.028493,-101.47796,-21.149805)" + ns1:version="0.10.0" + ns1:texconverter="pdflatex" + ns1:pdfconverter="pdf2svg" + ns1:text="$\\mathbf{v}_1$" + ns1:preamble="/home/nivoliev/.config/inkscape/extensions/textext/default_packages.tex" + ns1:scale="2.91541464204" + ns1:alignment="middle center" + ns1:jacobian_sqrt="1.028493" + id="g1886"> + <g + id="g1884"> + <g + style="fill:#000000;fill-opacity:1" + id="g1878"> + <path + style="stroke:none;stroke-width:0" + d="m 5.046875,-3.75 c 0.0625,-0.140625 0.09375,-0.203125 0.734375,-0.203125 v -0.46875 C 5.53125,-4.40625 5.25,-4.390625 5,-4.390625 c -0.25,0 -0.703125,-0.03125 -0.90625,-0.03125 v 0.46875 c 0.1875,0 0.46875,0.03125 0.46875,0.109375 0,0 0,0.03125 -0.046875,0.109375 l -1.15625,2.5 -1.265625,-2.71875 H 2.625 v -0.46875 c -0.328125,0.015625 -1.21875,0.03125 -1.234375,0.03125 -0.28125,0 -0.71875,-0.03125 -1.125,-0.03125 v 0.46875 h 0.625 l 1.75,3.75 c 0.125,0.25 0.25,0.25 0.375,0.25 0.171875,0 0.28125,-0.03125 0.375,-0.25 z m 0,0" + transform="translate(148.712,134.765)" + id="path1876" + inkscape:connector-curvature="0" /> + </g> + <g + style="fill:#000000;fill-opacity:1" + id="g1882"> + <path + style="stroke:none;stroke-width:0" + d="m 2.328125,-4.4375 c 0,-0.1875 0,-0.1875 -0.203125,-0.1875 -0.453125,0.4375 -1.078125,0.4375 -1.359375,0.4375 v 0.25 c 0.15625,0 0.625,0 1,-0.1875 v 3.546875 c 0,0.234375 0,0.328125 -0.6875,0.328125 H 0.8125 V 0 c 0.125,0 0.984375,-0.03125 1.234375,-0.03125 0.21875,0 1.09375,0.03125 1.25,0.03125 V -0.25 H 3.03125 c -0.703125,0 -0.703125,-0.09375 -0.703125,-0.328125 z m 0,0" + transform="translate(154.759,136.259)" + id="path1880" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <text + id="text1898" + y="127.0603" + x="73.131424" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.37443352px;line-height:17.77255249px;font-family:'Linux Biolinum';-inkscape-font-specification:'Linux Biolinum';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#73d216;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#73d216;stroke-width:0.26458332px" + y="127.0603" + x="73.131424" + id="tspan1896" + sodipodi:role="line">+</tspan></text> + </g> + <path + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Mend-9)" + d="m 120.51912,133.91128 h 40.62496" + id="path815-6" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path1111-0" + d="m 120.51912,133.91128 29.75494,27.65919" + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1115-2)" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#ef2929;stroke-width:1.05799997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Sstart-0)" + id="path1513-6" + sodipodi:type="arc" + sodipodi:cx="120.51912" + sodipodi:cy="-133.91129" + sodipodi:rx="20.524063" + sodipodi:ry="20.524063" + sodipodi:start="5.6637237" + sodipodi:end="6.2009568" + sodipodi:open="true" + d="m 137.22963,-145.82749 a 20.524063,20.524063 0 0 1 3.7442,10.23044" + transform="scale(1,-1)" /> + <g + id="g1814-2" + ns1:jacobian_sqrt="2.308245" + ns1:alignment="middle center" + ns1:scale="6.54305795713" + ns1:preamble="/home/nivoliev/.config/inkscape/extensions/textext/default_packages.tex" + ns1:text="$\\mathbf{v}_0$" + ns1:pdfconverter="pdf2svg" + ns1:texconverter="pdflatex" + ns1:version="0.10.0" + transform="matrix(1.0284933,0,0,1.0284933,-19.516552,-11.589708)" + style="stroke-width:2.2442975"> + <g + id="surface1-6" + style="stroke-width:2.2442975"> + <g + id="g1807-1" + style="fill:#000000;fill-opacity:1;stroke-width:2.2442975"> + <path + id="path1805-8" + transform="translate(148.712,134.765)" + d="m 5.046875,-3.75 c 0.0625,-0.140625 0.09375,-0.203125 0.734375,-0.203125 v -0.46875 C 5.53125,-4.40625 5.25,-4.390625 5,-4.390625 c -0.25,0 -0.703125,-0.03125 -0.90625,-0.03125 v 0.46875 c 0.1875,0 0.46875,0.03125 0.46875,0.109375 0,0 0,0.03125 -0.046875,0.109375 l -1.15625,2.5 -1.265625,-2.71875 H 2.625 v -0.46875 c -0.328125,0.015625 -1.21875,0.03125 -1.234375,0.03125 -0.28125,0 -0.71875,-0.03125 -1.125,-0.03125 v 0.46875 h 0.625 l 1.75,3.75 c 0.125,0.25 0.25,0.25 0.375,0.25 0.171875,0 0.28125,-0.03125 0.375,-0.25 z m 0,0" + style="stroke:none;stroke-width:0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g1811-7" + style="fill:#000000;fill-opacity:1;stroke-width:2.2442975"> + <path + id="path1809-9" + transform="translate(154.759,136.259)" + d="M 3.59375,-2.21875 C 3.59375,-2.984375 3.5,-3.546875 3.1875,-4.03125 2.96875,-4.34375 2.53125,-4.625 1.984375,-4.625 c -1.625,0 -1.625,1.90625 -1.625,2.40625 0,0.5 0,2.359375 1.625,2.359375 1.609375,0 1.609375,-1.859375 1.609375,-2.359375 z M 1.984375,-0.0625 c -0.328125,0 -0.75,-0.1875 -0.890625,-0.75 C 1,-1.21875 1,-1.796875 1,-2.3125 1,-2.828125 1,-3.359375 1.09375,-3.734375 1.25,-4.28125 1.6875,-4.4375 1.984375,-4.4375 c 0.375,0 0.734375,0.234375 0.859375,0.640625 0.109375,0.375 0.125,0.875 0.125,1.484375 0,0.515625 0,1.03125 -0.09375,1.46875 -0.140625,0.640625 -0.609375,0.78125 -0.890625,0.78125 z m 0,0" + style="stroke:none;stroke-width:0" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + id="g1886-2" + ns1:jacobian_sqrt="1.028493" + ns1:alignment="middle center" + ns1:scale="2.91541464204" + ns1:preamble="/home/nivoliev/.config/inkscape/extensions/textext/default_packages.tex" + ns1:text="$\\mathbf{v}_1$" + ns1:pdfconverter="pdf2svg" + ns1:texconverter="pdflatex" + ns1:version="0.10.0" + transform="matrix(1.028493,0,0,1.028493,-30.35785,15.081596)"> + <g + id="g1884-0"> + <g + id="g1878-2" + style="fill:#000000;fill-opacity:1"> + <path + id="path1876-3" + transform="translate(148.712,134.765)" + d="m 5.046875,-3.75 c 0.0625,-0.140625 0.09375,-0.203125 0.734375,-0.203125 v -0.46875 C 5.53125,-4.40625 5.25,-4.390625 5,-4.390625 c -0.25,0 -0.703125,-0.03125 -0.90625,-0.03125 v 0.46875 c 0.1875,0 0.46875,0.03125 0.46875,0.109375 0,0 0,0.03125 -0.046875,0.109375 l -1.15625,2.5 -1.265625,-2.71875 H 2.625 v -0.46875 c -0.328125,0.015625 -1.21875,0.03125 -1.234375,0.03125 -0.28125,0 -0.71875,-0.03125 -1.125,-0.03125 v 0.46875 h 0.625 l 1.75,3.75 c 0.125,0.25 0.25,0.25 0.375,0.25 0.171875,0 0.28125,-0.03125 0.375,-0.25 z m 0,0" + style="stroke:none;stroke-width:0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g1882-7" + style="fill:#000000;fill-opacity:1"> + <path + id="path1880-5" + transform="translate(154.759,136.259)" + d="m 2.328125,-4.4375 c 0,-0.1875 0,-0.1875 -0.203125,-0.1875 -0.453125,0.4375 -1.078125,0.4375 -1.359375,0.4375 v 0.25 c 0.15625,0 0.625,0 1,-0.1875 v 3.546875 c 0,0.234375 0,0.328125 -0.6875,0.328125 H 0.8125 V 0 c 0.125,0 0.984375,-0.03125 1.234375,-0.03125 0.21875,0 1.09375,0.03125 1.25,0.03125 V -0.25 H 3.03125 c -0.703125,0 -0.703125,-0.09375 -0.703125,-0.328125 z m 0,0" + style="stroke:none;stroke-width:0" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.37443352px;line-height:17.77255249px;font-family:'Linux Biolinum';-inkscape-font-specification:'Linux Biolinum';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ef2929;fill-opacity:1;stroke:#ef2929;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="144.44052" + y="144.58188" + id="text1898-9"><tspan + sodipodi:role="line" + id="tspan1896-2" + x="144.44052" + y="144.58188" + style="fill:#ef2929;stroke:#ef2929;stroke-width:0.26458332px">-</tspan></text> + </g> +</svg> diff --git a/Presentation/Figures/sort_comparison.pdf b/Presentation/Figures/sort_comparison.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e29ce993b2fe28701ee649b9f9fb194db850186e GIT binary patch literal 8865 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 literal 0 HcmV?d00001 diff --git a/Presentation/Figures/sweep_comparison.pdf b/Presentation/Figures/sweep_comparison.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cfae1bbbcab5446616f0834efdecc54806b9dee4 GIT binary patch literal 9288 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 E4_^^ID*ylh literal 0 HcmV?d00001 diff --git a/Presentation/presentation.tex b/Presentation/presentation.tex index d70438f..a943089 100644 --- a/Presentation/presentation.tex +++ b/Presentation/presentation.tex @@ -25,29 +25,29 @@ \frame { \frametitle{Enveloppe convexe} \centering - \includegraphics[width=0.6\li]{Figures/hull.pdf} + \includegraphics[width=0.6\li]{Figures/hull} } \frame { \frametitle{1 -- trier par angle} \centering - \includegraphics[width=0.6\li]{Figures/hull_sort.pdf} + \includegraphics[width=0.6\li]{Figures/hull_sort} } \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}}% + \only<1>{\includegraphics[width=0.6\li]{Figures/partial_hull}}% + \only<2>{\includegraphics[width=0.6\li]{Figures/increment_hull_1}}% + \only<3>{\includegraphics[width=0.6\li]{Figures/increment_hull_2}}% + \only<4>{\includegraphics[width=0.6\li]{Figures/increment_hull_3}}% + \only<5>{\includegraphics[width=0.6\li]{Figures/hull}}% } \frame { \frametitle{Robustesse : alignements de points} \centering - \includegraphics[width=0.6\li]{Figures/hull_aligned.pdf} + \includegraphics[width=0.6\li]{Figures/hull_aligned} } \frame { @@ -80,4 +80,149 @@ \end{ucblalgo} } +\section{Perturbation} + +\frame{ + \frametitle{Prédicat : orientation} + \centering + \includegraphics[width=0.5\li]{Figures/orient} + + \vspace{8mm} + \begin{myblock}{0.8\li} + \centering + $ + \det{ + \left( + \begin{array}{cc} + x_0 & x_1 \\ + y_0 & y_1 \\ + \end{array} + \right) + } + $ : sinus de l'angle si vecteurs normalisés. + + \hl{positif, négatif ou nul} + \end{myblock} +} + +\frame{ + \frametitle{Utilisation pour l'enveloppe convexe} + \centering + \only<1>{\includegraphics[width=0.6\li]{Figures/sort_comparison}}% + \only<2>{\includegraphics[width=0.6\li]{Figures/sweep_comparison}} +} + +\newcommand{\eps}{\ensuremath{\varepsilon}} + +\frame{ + \frametitle{Perturbation} + + \begin{align*} + \det{ + \left( + \begin{array}{cc} + x_0 + \eps_{0,0} & x_1 + \eps_{1,0} \\ + y_0 + \eps_{0,1} & y_1 + \eps_{1,1} \\ + \end{array} + \right) + } + &= + \det{ + \left( + \begin{array}{cc} + x_0 & x_1 \\ + y_0 & y_1 \\ + \end{array} + \right) + } \\ + & + + \eps_{0,0} y_1 + + \eps_{1,1} x_0 + - \eps_{0,1} x_1 + - \eps_{1,0} y_0 + \\ + & + + \eps_{0,0}\eps_{1,1} + - \eps_{0,1}\eps_{1,0} + \end{align*} + + \vspace{5mm} + \begin{myblock}{0.8\li} + \begin{enumerate} + \item systématiquement plus de zéro ? + \item facilité d'évaluation ? + \end{enumerate} + \end{myblock} +} + +\frame{ + \frametitle{Rester dans le pétrin} + + Posons que $ \forall(i,j), \eps_{i,j} = \eps > 0$ + + \begin{equation*} + \eps y_1 + + \eps x_0 + - \eps x_1 + - \eps y_0 + + \eps\eps + - \eps\eps + \end{equation*} + + \vspace{5mm} + Si $(x_0,y_0) = (0,1)$ et $(x_1,y_1) = (0,2)$ + + \begin{equation*} + 2\eps + - \eps + + \eps\eps + - \eps\eps + = \eps + \quad \Rightarrow \mbox{positif !} + \end{equation*} + + \visible<2>{ + \vspace{5mm} + Si $(x_0,y_0) = (1,1)$ et $(x_1,y_1) = (2,2)$ + + \begin{equation*} + 2\eps + + \eps + - 2\eps + - \eps + + \eps\eps + - \eps\eps + = 0 + \quad \Rightarrow \mbox{arf.} + \end{equation*} + } +} + +\frame{ + \frametitle{Sortir du pétrin} + + Avec la perturbation $ \begin{pmatrix}\eps^1 & \eps^2 \\ \eps^2 & \eps^2\end{pmatrix}$ + + \begin{align*} + & \eps^1 y_1 + + \eps^2 x_0 + - \eps^2 x_1 + - \eps^2 y_0 + + \eps^1\eps^2 + - \eps^2\eps^2 \\ + &= \eps y_1 + \eps^2(x_0 - x_1 - y_0) + \eps^3 - \eps^4 + \end{align*} + + \vspace{8mm} + \visible<2->{ + \begin{myblock}{0.8\li} + \begin{itemize} + \item<1-> si $y_1$ est non nul, renvoyer son signe ; + \item<3-> si $x_0 - x_1 - y_0$ est non nul, renvoyer son signe ; + \item<4-> sinon renvoyer positif. + \end{itemize} + \end{myblock} + } +} + \end{document} -- GitLab