18 Haziran 2017 Pazar

geometry intersection metodu

intersection - polygon + linestring
Polygon ile çizginin kesiştiği noktaları bulmak için şöyle yaparız.
PolygonType    pol = ...;
LineStringTpe  line = ...;

MultiPointType out;

intersection (pol, line, out);
Çıktı olarak şunu alırız.

intersection - polygon + box
Şöyle yaparız.
namespace bg = boost::geometry;
namespace bgm = bg::model;

typedef double base_type;
typedef bgm::d2::point_xy<base_type> point_type;
typedef bgm::polygon<point_type> polygon_type;
typedef bgm::multi_polygon<polygon_type> multipolygon_type;

polygon_type poly = ...;

bgm::box<point_type> box = ...;

multipolygon_type out;
bg::intersection(poly, box, out);
std::cout << bg::area(out) << " " << bg::wkt(out) << std::endl;

Hiç yorum yok:

Yorum Gönder