【问题标题】:Path line plotting graphics library/engine for C/C++?C/C++ 的路径线绘图图形库/引擎?
【发布时间】:2012-10-11 15:11:01
【问题描述】:

我正在寻找一个 C 或 C++ 库/引擎,它将在给定一组段输入的情况下绘制路径线图(2D 和/或 3D)。每段一般都与前一段相连,每段包括距离、方位角和偏角。有关示例输出,请参见下图。 2D 只需要距离和方位,而 3D 需要距离、方位和偏角。

我不是在寻找图表/报告库。

有没有人知道任何库,最好是开源的,足以在给定输入的情况下绘制路径线图?

最后我想画这样的东西(地图):

【问题讨论】:

  • 目标平台/设备/操作系统是什么?
  • iOS 和最终的 Android。不过,我认为图书馆可以无缝地同时使用两者。如果它只针对 iOS,那是可以接受的。
  • 适用于平面世界,球形还是椭圆形地球?
  • 平面是优先级。如果同一个库或另一个库也可以绘制 3D 表示(具有段距离、偏角和方向/方位角),那就太好了。对于 3D,我不确定球形或椭圆形是否重要。我想代表一个像立方体中所示的区域:mathgl.sourceforge.net/doc_en/doc_en_75.html#Cont3-sample。但再说一遍:平坦是首要任务。
  • 好吧,我建议您看看另一种利用 SVG 图形的方法。最简单的方法是使用 iOS 和 Android 的内置 Web 视图来托管 SVG,当然它不是纯 C++。您也可以为这些平台使用原生 SVG 库。我对 iOS 不熟悉,但我使用 code.google.com/p/svg-android/ 作为与地图相关的应用程序,它与大地图配合得非常好。您也可以使用跨平台 C++ 库,例如 code.google.com/p/simple-svg,但我想这可能需要大量工作才能支持 iOS 中的渲染。因此,请寻找替代方案。

标签: android ios graph plot line


【解决方案1】:

如果你分解图书馆需要做的事情, 你最终会得到一些非常基本的功能,
你可能不会发现它被封装为一个库 因为它们非常琐碎。

第 1 步:“分段到 3d 点”

a) 沿参考轴创建一个单位向量。
b) 按段距离缩放。
c) 通过轴承旋转。
d) 按偏角旋转。
(注意:假设方位角和偏角是正交的,您应该不会遇到任何麻烦。)
e) 添加段的开始(也就是最后一个向量)。

第 2 步:“3d 点到 2d 点”

a) 通过透视或正交投影矩阵乘以您的 3d 矢量。

第 3 步:“二维点到线”

a) 使用 bresenham 线算法来获取单个像素。

一旦您完成了第 2 步,并且实际上已经有了 2 点表示的线条 所有绘图库都应该这样做。
一点魔法都没有;)

(注意:有很多航班跟踪/地图应用程序做得非常好。)

【讨论】:

  • 这可能是我最终要做的。然后我将把它打包到我自己的库中,让你简单地传入一个点列表。
【解决方案2】:

Cocos2d-x 是您正在寻找的。在 GLView 中呈现的 OGL 编程可以访问您需要绘制所需内容的原始方法。你需要一些 C++ 和 android-ndk 的知识,按照网上教程和关注my tips on debugging

【讨论】:

    【解决方案3】:

    我一直在寻找同样的东西。

    你可以使用 Android 的 Skia,它是跨平台的,可以在 iOS 上运行,但对于这样一个简单的问题,它是一个大库。

    您应该查看来自 phoboslab.org 的 Ejecta。 它是基于 openGL/ES 的 iOS 的 JavaScript 画布实现。 您可以删除 javascript 部分并直接使用画布。 此外,它是开源的,开箱即用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 2011-07-03
      相关资源
      最近更新 更多