我正在尝试计算两个椭圆之间的重叠区域。我现在正在用多边形逼近椭圆,Boost.Geometry
并且根据这个答案,我找到了一个显然使用旧版本的示例。从这个问题的第二个答案中,我可以看到这也是一个旧示例,因为 v1.53 中没有一些头文件。我已将其替换为:
#include <boost/geometry/geometries/adapted/c_array.hpp>
#include <boost/geometry/multi/multi.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/io/wkt/wkt.hpp>
#include <boost/geometry/multi/geometries/multi_polygon.hpp>
并添加了以下代码:
typedef boost::geometry::model::d2::point_xy<double,
boost::geometry::cs::cartesian> point_2d;
typedef boost::geometry::model::polygon<point_2d> polygon_2d;
几乎一切正常。唯一的问题是:
polygon_2d poly, poly2;
typedef std::vector<polygon_2d > polygon_list;
polygon_list v;
intersection_inserter<polygon_2d >(poly2, poly, std::back_inserter(v));
我收到一个错误:
intersection_inserter was not declared in this scope
expected primary expression before '>' token
此处有关此问题的 boost 文档来自 2009 年,所以我想它不再适用了……据我所知,他们的示例与我的示例相同。我在头文件intersection.hpp
中找到了定义intersection_inserter 的位置,但我无法对其进行正面或反面...
我在 win7 的 VS2012 和 Linux Mint 14 的 Qt 4.7.4 中都遇到了同样的错误。任何帮助将不胜感激!