C++ 几何不';找不到多边形线中间的第二点

C++ 几何不';找不到多边形线中间的第二点,c++,boost,geometry,boost-geometry,C++,Boost,Geometry,Boost Geometry,我想用Boost.Geometry库找到正方形和直线的交点 model::ring<model::d2::point_xy<double>> ring { {0, 0}, {2, 0}, {2, 2}, {0, 2} }; model::polygon<model::d2::point_xy<double>> pol; pol.inners().push_back (ring); model::linestring<model::d2::p

我想用Boost.Geometry库找到正方形和直线的交点

model::ring<model::d2::point_xy<double>> ring { {0, 0}, {2, 0}, {2, 2}, {0, 2} };
model::polygon<model::d2::point_xy<double>> pol;
pol.inners().push_back (ring);

model::linestring<model::d2::point_xy<double>> line { {1, 3}, {-1, -1} };

model::multi_point<model::d2::point_xy<double>> out;

intersection (pol, line, out);  //out returns only {0.5, 2}, but not {0, 1}
model::环{{0,0},{2,0},{2,2},{0,2};
模型:多边形pol;
pol.inners().向后推(环);
模型::linestring行{{1,3},{-1,-1};
模型:多点指出;
交叉口(pol、line、out)//out只返回{0.5,2},但不返回{0,1}
但是它只返回一个点,尽管实际上有两个交点


如何找到所有交叉点?

关闭戒指并按预期顺序放置(默认情况下为顺时针方向):


谢谢,这很有效。但环已经有了参数Closed,这在默认情况下是正确的,我认为这只是针对这些情况。相交算法是否忽略了它?
model::ring<model::d2::point_xy<double>> ring {
    {0, 0}, {0, 2}, {2, 2}, {2, 0}, {0, 0}
};
model::polygon<model::d2::point_xy<double>> pol {
    { {0, 0}, {0, 2}, {2, 2}, {2, 0}, {0, 0} }
};