J'essaye de parcourir tous les points du polygone de boost. Existe-t-il une API pour gérer cela?Comment pouvons-nous obtenir tous les points stockés dans le polygone de boost
1
A
Répondre
0
http://www.boost.org/doc/libs/1_62_0/libs/polygon/doc/gtl_polygon_concept.htm
template <typename T> point_iterator_type begin_points(const T& polygon)
attend un modèle de polygone. Renvoie l'itérateur de début sur la plage de points correspondant aux sommets du polygone.
template <typename T> point_iterator_type end_points(const T& polygon)
attend un modèle de polygone. Renvoie l'itérateur de fin sur la plage de points correspondant aux sommets du polygone.
1
Voici un exemple simple de définir et récupérer le sommet du polygone BOOST Coordonnées:
#include <boost/geometry.hpp>
namespace bg = boost::geometry;
typedef bg::model::d2::point_xy<double> boost_point;
typedef bg::model::polygon<boost_point> boost_polygon;
[...]
//setting vertices
boost_polygon poly;
bg::append(poly.outer(), boost_point(-1, -1));
bg::append(poly.outer(), boost_point(-1, 1));
bg::append(poly.outer(), boost_point(1, 1));
bg::append(poly.outer(), boost_point(1, -1));
bg::append(poly.outer(), boost_point(-1, -1));
//getting the vertices back
for(auto it = boost::begin(boost::geometry::exterior_ring(poly)); it != boost::end(boost::geometry::exterior_ring(poly)); ++it)
{
double x = bg::get<0>(*it);
double y = bg::get<1>(*it);
//use the coordinates...
}