Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Here is example to the extension of your original question you asked as a comment below Kirill's answer: Are intersections between polygons possible?
- Yes, polygon-polygon intersections are supported by (http://trac.osgeo.org/ggl/)*/
- #include <iostream>
- #include <vector>
- #include <boost/geometry/geometry.hpp>
- #include <boost/geometry/geometries/cartesian2d.hpp>
- #include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
- using namespace boost::geometry;
- int main(void)
- {
- // Define a polygons and fill the outer rings.
- polygon_2d a;
- {
- const double c[][2] = {
- {160, 330}, {60, 260}, {20, 150}, {60, 40}, {190, 20}, {270, 130}, {260, 250}, {160, 330}
- };
- assign(a, c);
- }
- correct(a);
- std::cout << "A: " << dsv(a) << std::endl;
- polygon_2d b;
- {
- const double c[][3] = {
- {300, 330}, {190, 270}, {150, 170}, {150, 110}, {250, 30}, {380, 50}, {380, 250}, {300, 330}
- };
- assign(b, c);
- }
- correct(b);
- std::cout << "B: " << dsv(b) << std::endl;
- // Calculate interesection
- typedef std::vector<polygon_2d > polygon_list;
- polygon_list v;
- intersection_inserter<polygon_2d>(a, b, std::back_inserter(v));
- std::cout << "Intersection of polygons A and B" << std::endl;
- for (polygon_list::const_iterator it = v.begin(); it != v.end(); ++it)
- {
- std::cout << dsv(*it) << std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement