boost::多边形和boost/geometry/geometry/多边形差异



我有两个问题:

1.)我刚刚发现了boost 1.53 Polygon的实现(onhttp://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/g几何形状/几何体/多边形…"这与#include"增强/多边形…"相同吗或者boost使用了同一事物(多边形)的两个实现?或者它只是一个版本控制的东西?

感谢任何能帮我解决这个问题的人。问候

Boost中有两个库,它们引入了自己的多边形概念:
  • Boost.几何(http://www.boost.org/libs/geometry)
  • Boost.Polgon(http://www.boost.org/libs/polygon)

我不确定你想说"模板重新初始化"是什么。也许你想说"模板专业化",这有时是使某些类适应概念所必需的。

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

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

这些库引入的多边形概念在这里进行了描述:

  • Boost.几何-http://www.boost.org/libs/geometry/doc/html/geometry/reference/concepts/concept_polygon.html
  • Boost.Polgon-http://www.boost.org/libs/polygon/doc/gtl_polygon_concept.htm

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

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

相关内容

  • 没有找到相关文章

最新更新