2013-06-27 330 views
1

我有兩個問題:boost :: polygon和boost/geometry/geometry/polygon的區別?

1)I ^剛纔已經找到了提升1.53多邊形實現(上http://www.boost.org/doc/libs/1_53_0/libs/polygon),並想對它進行測試,因爲功能是驚人的CAD程序員喜歡我。 (但我沒有得到與模板重新初始化的東西「http://www.boost.org/doc/libs/1_53_0/libs/polygon/doc/voronoi_basic_tutorial.htm」) 有沒有人知道一個很好的教程,這解釋了爲什麼這個模板重新初始化是必要的,以及如何做到這一點。或沒有它如何相處。

2.)在尋找教程時,我發現很多使用#include「boost/geometry/geometries/polygon ...」的網站......「 與#include」boost/polygon ...「 或者boost是否使用相同事物(多邊形)的兩個實現? 或者它只是一個版本控制的東西?

感謝任何能夠幫助我解決這個問題的人。 問候

回答

2

有Boost中兩個庫,介紹它自己的多邊形概念:

我不是當然你在想什麼「模板重新初始化」。也許你想說「模板專業化」,有時需要將某些類適應概念。

如果你想知道爲什麼這樣做是這樣做的。這允許調用在那些庫中實現的傳遞一些遺留類的對象的算法。程序員必須適應這些類到一個必需的概念,他可以使用它們而不需要轉換爲一些中間對象。

這與在C++中使用特徵的方式非常相似。例如。當實現一些新的迭代器類時,std::iterator_traits<>模板可能專門用於定義此迭代器的特徵。這將是程序員爲了使這個新的迭代器類適應Iterator概念之一而應該做的事情之一,例如, ForwardIterator概念。然後他可以在STL算法中使用它,例如std::for_each()。通過這些庫引入

多邊形概念這裏描述:

典型地,庫還提供了已經適應於支持的類概念。例如。 Boost.Geometry提供了boost::geometry::model::polygon<>http://www.boost.org/libs/geometry/doc/html/geometry/reference/models/model_polygon.html

也許有可能將某些類適用於兩個概念並在兩個庫中使用它,但我不確定它。

+1

一個重要的區別是Boost.Polygon僅適用於整數座標。 (甚至沒有理性) – alfC

相關問題