【问题标题】:boost::polygon and boost/geometry/geometries/polygon difference?boost::polygon 和 boost/geometry/geometries/polygon 的区别?
【发布时间】:2013-06-25 06:30:19
【问题描述】:

我有两个问题:

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.) 在寻找教程时,我发现很多网站都使用 #include "boost/geometry/geometries/polygon..." 这和#include "boost/polygon..." 一样吗? 还是 boost 使用同一事物(多边形)的两种实现? 还是只是版本控制?

感谢任何可以帮助我清除此问题的人。 问候

【问题讨论】:

    标签: c++ boost polygon boost-polygon


    【解决方案1】:

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

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

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

    这与 C++ 中使用特征的方式非常相似。例如。当一些新的迭代器类被实现时,std::iterator_traits<> 模板可能会专门为这个迭代器定义特征。这将是程序员应该做的事情之一,以使这个新的迭代器类适应迭代器概念之一,例如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)

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多