我正在嘗試計算兩個省略號之間的重疊區域。我現在正在近似具有多邊形的橢圓,並且我找到了一個顯然使用舊版本Boost.Geometry
的示例,按照此answer。從第二個答案到question,我可以看到這也是一個老例子,因爲一些頭文件在v1.53中不存在。 我已經取代那些:Intersection_inserter未在此範圍內聲明
#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));
我得到一個錯誤:對此事here是從2009年
intersection_inserter was not declared in this scope
expected primary expression before '>' token
提升的文檔,所以我想它已經不適用?據我所知,他們的例子和我的一樣。我找到了頭文件intersection.hpp
的地方,其中intersection_inserter被定義,但我不能使它的正面或反面...
我得到了VS2012在win7和Qt 4.7.4 Linux Mint 14中的錯誤。 任何幫助將不勝感激!
謝謝你的快速回復。它解決了我的問題! – Dima1982