我的应用程序是表示地球表面上的形状(使用球体就足够了)。这些可以是点、线和多边形。坐标应该使用度数或弧度来定义(就像地理坐标一样)。
球面上两点之间的线段应位于其大圆上。多边形应该由这些线条的集合组成。此外,我想对提到的形状执行集合 - 基本操作,如交集、联合、差异、补码。这些操作只需要输出点的集合。
我尝试使用 CGAL 的3D Spherical Geometry Kernel和2D Boolean Operations on Nef Polygons Embedded on Sphere 来解决这个问题。实际上,我在球体上划线时已经遇到了问题。此外,CGAL 在欧几里得空间中工作,这仍然给我留下了必要的几何运算,以处理放置在球体上的大圆圈。
我的问题是,您是否可以帮助我实现 CGAL 中提到的功能,或者您是否可以推荐另一个用于 C/C++ 的库来做到这一点。非常感谢!