【问题标题】:boost geometry circle segment intersection提升几何圆段交点
【发布时间】:2019-05-18 21:50:57
【问题描述】:

我有两个 GPS 坐标 (p, q),它们是一段的端点。我有第三个点c,它是半径为r 的圆的中心。我的目标是找到这两个几何图形之间的交点集合X

至少可以有 0 个交叉点,最多可以有 2 个交叉点。我没有在 boost-geometry 中找到任何椭圆或类似几何的圆形。是否有任何相交策略可以产生相交点x,即r 距离c 的距离?

【问题讨论】:

  • 不是 Boost 解决方案,但这里有答案:stackoverflow.com/questions/1073336/…
  • 但这看起来像普通的欧几里德几何。在我的情况下,这些点在一个球体上
  • 对不起,我错过了。将线段与圆锥相交,然后将交点投影到球体上是否可行?
  • 如果 r 几公里,锥体可能会起作用。但这条线不是直线,它也在球面上。
  • 我认为它适用于所有规模。连接两点的直线与两点所在的大圆在同一平面上。该平面通过圆锥的尖端(球心),因此从直线与圆锥的交点投影的点也将同时位于圆和球线段上。

标签: c++ gps geo boost-geometry spherical-coordinate


【解决方案1】:

Boost Geometry 没有圆的概念。

近似圆的常用方法是生成一个 n 较高的正 n 边形。

您可以对线段的端点使用 k-最近搜索:boost::geometry: nearest neighbors using a circle - 这将回答可通过您的问题描述回答的问题的子集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多