- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想计算一条线之间的交点:
l := direction * x + origin for x e R or x e [0,R+)
和默认的 Boost 多边形。在文档中我只发现了与线段(固定起点和终点)的交点的可能性
目前我正在使用 boost geometry 和 intersection : http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/reference/algorithms/intersection.html
我错过了什么吗?或者你知道我可以用来解决我的问题的一些 boost 功能。
我尝试了一种解决方法:
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.Geometry 没有无限线或射线的概念。因此,您确实需要为此使用 Segment 或 Linestring。使用 Segment 确实看起来是最好的方法,但现在 intersection() 可能不支持它。如果您非常需要,可以创建带有功能请求的票证。现在您可以使用 Linestring 而不是 Segment 来定义一条线。要存储结果,您可以使用 MultiLinestring 或点 vector 。在第二种情况下,您将获得交点,因此 AFAIU 正是您所需要的:
typedef boost::geometry::model::d2::point_xy<double> Point;
typedef boost::geometry::model::linestring<Point> Linestring;
typedef boost::geometry::model::polygon<Point> Polygon;
Linestring ls;
Polygon poly;
std::vector<Point> result;
boost::geometry::intersection(ls,poly,result);
如果上面没有编译你应该使用更新版本的 Boost。
您可能不应该创建包含 double 值的最低值/最大值的线串。这是因为你会得到大量的数字错误。段的点越近越好。例如,您可以手动计算线段与 Polgon 的边界框或边界球等的交点的点。
关于c++ - 交线多边形 boost 几何体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906510/
我想计算一条线之间的交点: l := direction * x + origin for x e R or x e [0,R+) 和默认的 Boost 多边形。在文档中我只发现了与线段(固定起点和终
我有一个 blender 文件,我将其导出为 DAE/collada,然后使用 Xcode 将其转换为 Scenekit 的场景文件。我在使用场景文件中的几何体时遇到问题。 场景文件(“model.s
我正在开发一些用于生成 3D 模型的 webgl 软件,并且依赖于动态几何。我观察到了一些非常奇怪的行为,我已经能够在 this jsfiddle 中隔离这些行为。 . 似乎在将几何体实例添加到场景后
我们正在尝试构建“编辑 handle ”,允许用户通过在 8 个位置(4 个 Angular + 4 个边)之一拖动来调整(投影)平面的大小。这种调整大小应该只在拖动的方向上缩放/拉伸(stretch
我创建了一个渲染四边形的简单程序 初始化: Math::float3 vertices[4]; vertices[0] = Math::float3(-0.5f, 0.5f, -1.0f); vert
这里是定义我的简单 3D 几何体的点。 datN = {{{-0.47150460764747554`, 0.29559274991660417`, 0.010131794240974218`},
有没有办法在 3d 中定义形状 var x = 0, y = 0, z=0 ; var heartShape = 新三。 形状 (); heartShape.moveTo( x + 25, y + 2
我正在使用网络 worker 加载动画 3D 模型的 .json 文件。对于每个大数组(顶点、法线等),我将一个 Float32Array 缓冲区传输回 UI 线程。由于此类缓冲区是 transfer
我是一名优秀的程序员,十分优秀!