我正在寻找一个 C 或 C++ 库/引擎,它将在给定一组段输入的情况下绘制路径线图(2D 和/或 3D)。每一段一般都与前一段相连,每段包括距离、方位角和偏角。有关示例输出,请参见下图。2D 只需要距离和方位,而 3D 需要距离、方位和偏角。
我不是在寻找图表/报告库。
有谁知道任何库,最好是开源的,足以在给定输入的情况下绘制路径线图?
最终我想画这样的东西(地图):
我一直在寻找同样的东西。
你可以使用来自 Android 的Skia,它是跨平台的,可以在 iOS 上运行,但对于这样一个简单的问题,它是一个大库。
你应该看看来自phoboslab.org的 Ejecta。它是一个基于 openGL/ES 的 iOS javascript 画布实现。您可以删除 javascript 部分并直接使用画布。此外,它是开源的,开箱即用。
如果你分解库需要做什么,你最终会得到一些非常基本的函数,
你可能不会发现它们被封装为一个库,因为它们非常微不足道。
第 1 步:“分段到 3d 点”
a) 沿参考轴创建一个单位向量。
b)按段距离缩放它。
c) 通过轴承旋转。
d) 按偏角旋转。
(注意:假设方位角和偏角是正交的,你不应该遇到任何麻烦。)
e)添加段的开始(也就是最后一个向量)。
第 2 步:“3d 点到 2d 点”
a)通过透视或正交投影矩阵乘以您的 3d 矢量。
第 3 步:“2d 点到线”
a) 使用 bresenham 线算法来获取单个像素。
一旦你完成了第 2 步并且实际上在 2 点表示中有线条,所有绘图库都应该这样做。
一点魔法都没有;)
(注意:有很多航班跟踪/地图应用程序做得非常好。)