boost :: polygon和boost /几何/几何/多边形差异?

时间:2013-06-27 16:30:25

标签: c++ boost polygon boost-polygon

我有两个问题:

1。)我刚刚找到了boost 1.53 Polygon实现(在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。)在寻找Tutorials时,我发现很多网站使用#include“boost / geometry / geometry / polygon ...” 这与#include“boost / polygon ...”相同吗? 或者boost是否使用相同的两个实现(多边形)? 或者它只是一个版本控制的东西?

感谢所有能帮助我解决此问题的人。 此致

1 个答案:

答案 0 :(得分:2)

Boost中有两个库引入了它自己的多边形概念:

我不确定你在说什么"模板重新初始化"。也许你想说"模板专业化"有时需要使某些课程适应概念。

如果您想知道为什么这样做。这允许调用在那些库中实现的算法,传递一些遗留类的对象。程序员必须将这些类调整为所需的概念之一,并且可以在不转换为某个中间对象的情况下使用它们。

这与在C ++中使用特征的方式非常相似。例如。当实现一些新的迭代器类时,std::iterator_traits<>模板可以专门用于定义此迭代器的特征。这将是程序员应该做的事情之一,以使这个新的迭代器类适应其中一个Iterator概念,例如: ForwardIterator概念。然后他可以在std::for_each()等STL算法中使用它。

这些库引入的多边形概念如下所述:

通常,库还提供已经适应所支持概念的类。例如。 Boost.Geometry提供boost::geometry::model::polygon<>http://www.boost.org/libs/geometry/doc/html/geometry/reference/models/model_polygon.html

可能有可能让某些类适应这两个概念并在两个库中使用它,但我不确定。