#include #include #include #include #include #include BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian) int main() { typedef boost::tuple point; boost::geometry::model::multi_point my_multipoint; // 105 points boost::geometry::append(my_multipoint, point( -797.90716690718341, -743.43957664112133 )); boost::geometry::append(my_multipoint, point( -795.22162289526409, -727.99240467525078 )); boost::geometry::append(my_multipoint, point( -790.46173098582653, -701.28876092851795 )); boost::geometry::append(my_multipoint, point( -790.33976574526014, -700.62296627345972 )); boost::geometry::append(my_multipoint, point( -790.26187892902442, -700.19779085548635 )); boost::geometry::append(my_multipoint, point( -789.23540411077852, -694.59437965103302 )); boost::geometry::append(my_multipoint, point( -787.83554997170233, -686.95273250936839 )); boost::geometry::append(my_multipoint, point( -514.06726216482116, 806.27949673949558 )); boost::geometry::append(my_multipoint, point( -509.36967991522408, 831.76499172739125 )); boost::geometry::append(my_multipoint, point( -506.75807734171445, 834.00456288940575 )); boost::geometry::append(my_multipoint, point( -337.89169177244594, 835.53825334857891 )); boost::geometry::append(my_multipoint, point( -337.84865664266141, 822.44389056700004 )); boost::geometry::append(my_multipoint, point( -337.84312909130801, 80.630216730473649 )); boost::geometry::append(my_multipoint, point( -337.84312909130807, 80.63021673236176 )); boost::geometry::append(my_multipoint, point( -337.8339573083814, 769.32163390153153 )); boost::geometry::append(my_multipoint, point( -337.80238402253292, 785.04525910924269 )); boost::geometry::append(my_multipoint, point( -337.67480532612205, 826.5094981125452 )); boost::geometry::append(my_multipoint, point( -336.53644831680521, 827.27040221811501 )); boost::geometry::append(my_multipoint, point( -335.46413976943887, 820.00558741272278 )); boost::geometry::append(my_multipoint, point( -335.39986207205209, 796.45752002319466 )); boost::geometry::append(my_multipoint, point( -335.39578977808742, 79.550528953457956 )); boost::geometry::append(my_multipoint, point( -335.39578977808748, 79.550528962120211 )); boost::geometry::append(my_multipoint, point( -335.05585592953452, 800.57532887869263 )); boost::geometry::append(my_multipoint, point( -334.85279105122828, 807.0289157892206 )); boost::geometry::append(my_multipoint, point( -334.00050267761219, 826.230955331063 )); boost::geometry::append(my_multipoint, point( -333.92847236692313, 826.71658830980061 )); boost::geometry::append(my_multipoint, point( -333.76942412227828, 827.1473331779481 )); boost::geometry::append(my_multipoint, point( -333.53708769605333, 827.48600615602084 )); boost::geometry::append(my_multipoint, point( -333.52533372011845, 98.533479510515235 )); boost::geometry::append(my_multipoint, point( -333.5236320644247, -219.91404275572708 )); boost::geometry::append(my_multipoint, point( -333.52363206442476, -219.91404275071523 )); boost::geometry::append(my_multipoint, point( -333.5145050872307, 786.19796221274794 )); boost::geometry::append(my_multipoint, point( -333.37643803114725, 822.11639993010374 )); boost::geometry::append(my_multipoint, point( -333.25151939634759, 827.70337146859163 )); boost::geometry::append(my_multipoint, point( -332.93737072937586, 827.78066519723427 )); boost::geometry::append(my_multipoint, point( -332.6217604260134, 827.71121500223546 )); boost::geometry::append(my_multipoint, point( -331.12244825824973, 824.51276440461754 )); boost::geometry::append(my_multipoint, point( -331.08725507658625, 822.23947706478282 )); boost::geometry::append(my_multipoint, point( -331.07085017092896, 116.97037612943245 )); boost::geometry::append(my_multipoint, point( -331.07073240358659, 78.8398891226675 )); boost::geometry::append(my_multipoint, point( -331.07073240358665, 78.839889128809546 )); boost::geometry::append(my_multipoint, point( -331.0596700835942, 818.18472270000677 )); boost::geometry::append(my_multipoint, point( -331.04513091163921, 823.44725839699561 )); boost::geometry::append(my_multipoint, point( -329.92579891878466, 826.46595319008668 )); boost::geometry::append(my_multipoint, point( -327.2600074516439, 832.78027798811002 )); boost::geometry::append(my_multipoint, point( -302.60107259893425, 835.82954434354372 )); boost::geometry::append(my_multipoint, point( -111.03257380226995, 837.45798976157232 )); boost::geometry::append(my_multipoint, point( 501.41481051435198, 842.49069378124807 )); boost::geometry::append(my_multipoint, point( 572.43405315774919, 842.86123160354134 )); boost::geometry::append(my_multipoint, point( 599.93879237178385, 830.40056768320176 )); boost::geometry::append(my_multipoint, point( 608.49896614863485, 826.44663231674406 )); boost::geometry::append(my_multipoint, point( 630.10491926022303, 815.56490207288186 )); boost::geometry::append(my_multipoint, point( 640.72086116967637, 732.71159553227301 )); boost::geometry::append(my_multipoint, point( 541.75969635004913, -759.48048094413593 )); boost::geometry::append(my_multipoint, point( 533.92858414961688, -802.48515050950027 )); boost::geometry::append(my_multipoint, point( 528.27586502389477, -833.19576594350247 )); boost::geometry::append(my_multipoint, point( 524.8024711779193, -850.24784658353565 )); boost::geometry::append(my_multipoint, point( 375.66053547345166, -851.31173946912065 )); boost::geometry::append(my_multipoint, point( 334.23831586428628, -851.4006986393515 )); boost::geometry::append(my_multipoint, point( 323.54469242467235, -848.37472112451201 )); boost::geometry::append(my_multipoint, point( 321.11271545594326, -847.19784248686733 )); boost::geometry::append(my_multipoint, point( 319.55610600537477, -843.57474889648245 )); boost::geometry::append(my_multipoint, point( 319.08141043802328, -804.82208413760839 )); boost::geometry::append(my_multipoint, point( 319.01914360517787, -675.54125362689115 )); boost::geometry::append(my_multipoint, point( 319.01699893964826, -476.73320068471332 )); boost::geometry::append(my_multipoint, point( 319.01692904272909, -101.51828099435119 )); boost::geometry::append(my_multipoint, point( 319.01692904272915, -101.51828099730557 )); boost::geometry::append(my_multipoint, point( 319.00506000036955, -746.57142200626981 )); boost::geometry::append(my_multipoint, point( 318.99963208543159, -756.36120795656132 )); boost::geometry::append(my_multipoint, point( 318.98309119498742, -772.6307992003384 )); boost::geometry::append(my_multipoint, point( 318.8107166139207, -805.08172565760128 )); boost::geometry::append(my_multipoint, point( 318.5487374526449, -837.69083312539442 )); boost::geometry::append(my_multipoint, point( 317.79405997847948, -843.28564818624079 )); boost::geometry::append(my_multipoint, point( 315.55799430347736, -843.93521656527503 )); boost::geometry::append(my_multipoint, point( 302.72058590873348, -847.63740854811806 )); boost::geometry::append(my_multipoint, point( 274.48528564179617, -850.55887542220353 )); boost::geometry::append(my_multipoint, point( 264.75184382335334, -845.97817022391337 )); boost::geometry::append(my_multipoint, point( 264.36257215171912, -844.36043227782602 )); boost::geometry::append(my_multipoint, point( 264.25858632793324, -828.47882176995711 )); boost::geometry::append(my_multipoint, point( 264.17512517309098, -724.65453309905922 )); boost::geometry::append(my_multipoint, point( 264.16917987210189, -699.68277708052722 )); boost::geometry::append(my_multipoint, point( 264.16633120973182, -297.18911797849876 )); boost::geometry::append(my_multipoint, point( 264.16633120973188, -297.18911798145319 )); boost::geometry::append(my_multipoint, point( 264.16206739125943, -751.37417925730676 )); boost::geometry::append(my_multipoint, point( 264.11783289495128, -828.0291331930365 )); boost::geometry::append(my_multipoint, point( 263.89230914405806, -833.73191258122506 )); boost::geometry::append(my_multipoint, point( 262.86325998800237, -841.16198169473614 )); boost::geometry::append(my_multipoint, point( 261.66661064514955, -843.11517046728568 )); boost::geometry::append(my_multipoint, point( 261.31961894542701, -843.0657526960789 )); boost::geometry::append(my_multipoint, point( 260.9034444773061, -838.80039823048628 )); boost::geometry::append(my_multipoint, point( 260.28071303182497, -824.96583968484015 )); boost::geometry::append(my_multipoint, point( 260.08813669851213, -805.30901833729865 )); boost::geometry::append(my_multipoint, point( 259.82605511812193, -757.62536924591166 )); boost::geometry::append(my_multipoint, point( 259.82262372438947, -290.49568327311431 )); boost::geometry::append(my_multipoint, point( 259.82262372438953, -290.4956832760688 )); boost::geometry::append(my_multipoint, point( 259.81744287440932, -805.56865985729132 )); boost::geometry::append(my_multipoint, point( 259.67576686965378, -824.37379268672873 )); boost::geometry::append(my_multipoint, point( 259.55546371313363, -838.17776732508469 )); boost::geometry::append(my_multipoint, point( 259.31344112408544, -849.58150341179066 )); boost::geometry::append(my_multipoint, point( 248.38140362121248, -852.31717283431419 )); boost::geometry::append(my_multipoint, point( -554.33437860251911, -859.2725338959458 )); boost::geometry::append(my_multipoint, point( -565.75258656146957, -854.62812152144318 )); boost::geometry::append(my_multipoint, point( -787.26712120149818, -752.40146400728577 )); boost::geometry::append(my_multipoint, point( -795.22395741253774, -748.19204317574668 )); boost::geometry::append(my_multipoint, point( -797.90716690718341, -743.43957664112133 )); boost::geometry::model::polygon hull; boost::geometry::convex_hull (my_multipoint, hull); vector >::iterator it; for (it = hull.outer().begin(); it != hull.outer().end(); ++it) std::cout << std::setprecision(17) << boost::geometry::get<0>(*it) << ", " << boost::geometry::get<1>(*it) << std::endl; std::cout << "Number of points in hull: " << hull.outer().size() << std::endl; return 0; }