【发布时间】:2015-01-12 16:27:49
【问题描述】:
我想计算一条线之间的交点:
l := direction * x + origin for x e R or x e [0,R+)
和一个默认的 Boost 多边形。在文档中,我只发现了与线段相交的可能性(固定起点和终点)
目前我正在使用 boost 几何和交集: http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/reference/algorithms/intersection.html
我错过了什么吗?或者你知道一些我可以用来解决我的问题的增强功能。
我尝试了一种解决方法:
typedef boost::geometry::model::d2::point_xy<double> Point;
typedef boost::geometry::model::segment<Point> Segment;
Segment AB( Point{1,1*std::numeric_limits<double>::lowest()},Point{0,1*std::numeric_limits<double>::max()});
boost::geometry::model::polygon<Point> poly;
poly.outer().push_back(Point{0,0});
poly.outer().push_back(Point{10,0});
poly.outer().push_back(Point{10,10});
poly.outer().push_back(Point{0,10});
poly.outer().push_back(Point{0,0});
std::vector<Segment> result;
boost::geometry::intersection(AB,poly,result);
我正在使用 boost 1.56 并收到尚未实现的错误。你知道我在哪里可以找到实施了哪些交叉点的列表吗?或者知道有什么新想法?
【问题讨论】:
-
您将变得更加具体。没有“默认 Boost 多边形”之类的东西。你指的是boost.org/doc/libs/1_51_0/libs/polygon/doc/… 还是如标签所暗示的boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/…?
-
对不起,忘了告诉你我使用的是哪个库
标签: c++ boost geometry boost-geometry