未在此范围内声明Intersection_inserter

问题描述 投票:0回答:1

我试图计算两个椭圆之间的重叠区域。我现在正在用多边形逼近椭圆,我发现了一个显然使用旧版Boost.Geometry的例子,根据这个answer。从第二个答案到这个question,我可以看到这也是一个老例子,因为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

关于问题here的提升文件是从2009年开始的,所以我想它不再适用了......就我所知,他们的例子与我的相同。我在头文件intersection.hpp上找到了这个位置,其中定义了intersection_inserter,但我无法做出它的正面或反面...

我在win7中的VS2012和Linux Mint 14中的Qt 4.7.4都遇到了同样的错误。任何帮助都将不胜感激!

c++ boost boost-geometry
1个回答
1
投票

我在当前的boost文档中找不到任何对intersection_inserter的引用。也许这个功能已被删除?

似乎在boost::geometry中计算交叉点的“官方”方式是通过intersection函数,如记录(示例)here

© www.soinside.com 2019 - 2024. All rights reserved.