【发布时间】:2011-02-13 07:11:29
【问题描述】:
我的应用是表示地球表面的形状(使用球体就足够了)。这些可以是点、线和多边形。坐标应该使用度数或弧度来定义(就像地理坐标一样)。
球体表面两点之间的线段应位于其great circle 上。多边形应该由这些线条的集合组成。此外,我想在提到的形状上执行Set - Basic Operations 之类的交叉、联合、差异、补充。这些操作只需要输出点的集合即可。
我尝试使用 CGAL 的 3D Spherical Geometry Kernel 和 2D Boolean Operations on Nef Polygons Embedded on the Sphere 来解决这个问题。实际上,我在球体上划线时已经遇到了问题。此外,CGAL 在欧几里得空间中工作,这仍然给我留下了必要的几何运算,以处理放置在球体上的大圆圈。
我的问题是,您是否可以帮助我实现 CGAL 中提到的功能,或者您是否可以推荐另一个 C/C++ 库来实现这一点。非常感谢!
【问题讨论】:
-
“嵌入在球体上的 Nef 多边形的 2D 布尔运算”看起来可以满足您的需求。您有什么具体需要帮助的吗?
-
@user168715 我不清楚你的问题。在第一段中,您需要在球体的 surface 上绘制形状,但在第二段中,您希望在大圆上绘制线条/多边形(实际上将在 inside上绘制线条/多边形> 球体)。
-
@Pranav:球体表面多边形的每条“线”都是不同大圆的一部分。
-
不清楚“这些操作只需要输出点的集合”是什么意思。什么样的积分集合?
标签: c++ c geometry computational-geometry cgal