0

我正在尝试计算两个椭圆之间的重叠区域。我现在正在用多边形逼近椭圆,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 中都遇到了同样的错误。任何帮助将不胜感激!

4

1 回答 1

1

intersection_inserter我在当前的 boost 文档中找不到任何参考。也许此功能已被删除?

似乎计算交叉点的“官方”方法boost::geometry是通过intersection函数,如此处所记录(带有示例

于 2013-04-17T10:52:02.323 回答