Пусть буфер создает плоские концы.
Эта стратегия может быть использована в качестве конечной стратегии для буферного алгоритма. Он создает плоский конец для каждого струнного конца. Его можно применять для (многочисленных) линий. Также он применим для шипов в (мульти)полигонах. Эта стратегия применима только для картезианских систем координат.
class strategy::buffer::end_flat
{
};
#include <boost/geometry/strategies/cartesian/buffer_end_flat.hpp>
Показывает, как стратегия end_flat может использоваться в качестве конечной стратегии для создания плоских концов
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/geometries.hpp>
int main()
{
typedef boost::geometry::model::d2::point_xy<double> point;
typedef boost::geometry::model::linestring<point> linestring;
typedef boost::geometry::model::polygon<point> polygon;
boost::geometry::strategy::buffer::end_flat end_strategy;
boost::geometry::strategy::buffer::distance_symmetric<double> distance_strategy(1.0);
boost::geometry::strategy::buffer::side_straight side_strategy;
boost::geometry::strategy::buffer::join_round join_strategy;
boost::geometry::strategy::buffer::point_circle point_strategy;
boost::geometry::model::multi_linestring<linestring> ml;
boost::geometry::read_wkt("MULTILINESTRING((3 5,5 10,7 5),(7 7,11 10,15 7,19 10))", ml);
boost::geometry::model::multi_polygon<polygon> result;
boost::geometry::buffer(ml, result,
distance_strategy, side_strategy,
join_strategy, end_strategy, point_strategy);
return 0;
}
