我正在尝试(但失败)在Boost.Geometry中实现多边形概念。我已经成功实现了点对点的概念:

typedef QVector<QVector2D> Contour;
BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET(QVector2D, float,
    boost::geometry::cs::cartesian, x, y, setX, setY)
BOOST_GEOMETRY_REGISTER_RING(Contour)

现在,我试图将Polygon类定义为:
class Polygon
{
public:
    typedef QVector2D point_type;
    typedef Contour ring_type;
    typedef QVector<Contour> inner_container_type;

    Contour const& outer() const { return _outer; }
    QVector<Contour> const& inners() const { return _inners; }

    Contour& outer() { return _outer; }
    QVector<Contour>& inners() { return _inners; }
private:
    Contour _outer;
    QVector<Contour> _inners;
};

我知道我需要在该类中添加多边形标记,但是我找不到这样做的任何清晰示例,而且我遇到的错误提示了更多问题。如果有人可以提供实现该概念的工作示例的链接,我想我可以从那里弄清楚我的问题。

最佳答案

最好的引用是在文档中:

http://www.boost.org/doc/libs/1_54_0/libs/geometry/doc/html/geometry/examples.html

关于c++ - Boost.geometry实现多边形概念,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19634009/

10-10 23:00