2013-04-17 49 views
0

我正在嘗試計算兩個省略號之間的重疊區域。我現在正在近似具有多邊形的橢圓,並且我找到了一個顯然使用舊版本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中的錯誤。 任何幫助將不勝感激!

回答

1

我在當前的boost文檔中找不到對intersection_inserter的任何引用。也許這個功能已被刪除?

看來,「官方」的方式來計算boost::geometry交點就是通過intersection功能,如記錄(例如帶)here

+0

謝謝你的快速回復。它解決了我的問題! – Dima1982