需要有关实施主要飞行显示的指导

时间:2013-04-07 21:56:49

标签: java objective-c opengl graphics quartz-graphics

我是熟悉Ada,C,Obj.C(iOS)和C#的开发人员。我想创建一个应用程序来显示我正在构建的机器人的一些数据。但是我之前从未使用Mac库或OpenGL完成图形处理。

我想要实现的目标如下图所示。我已经测试了Processing来创建一些东西。但它太复杂了,而且这种应用程序的处理功能还远远不够强大。如果不编写一些令人讨厌的代码,它甚至无法围绕其中心旋转一条线。

要求
绘图功能(例如,相对于时间绘制的电压),Google地图API,渐变,2D动画,蒙版。

问题

  1. 我应该学什么?这可能只使用Mac库/框架实现,还是应该使用OpenGL?
  2. 使用Obj c最好吗?还是java值得学习? Java与这样的图形有多好?这是因为如果我使用Obj C编程,那么它不是跨平台。
  3. 您可以提供任何其他提示吗?
  4. 稍后,我想添加一个谷歌地图来显示飞机的位置。所有数据都通过Wifi传输。为10Hz。

    enter image description here

3 个答案:

答案 0 :(得分:0)

以下是使用opengl和js执行此操作的帖子:http://www.jpct.net/forum2/index.php?topic=3076.0

  1. 是的,您可以在opengl中执行此操作,但您可以考虑使用2d渲染的Cairo,可能更简单。这当然取决于你是否需要3D渲染。在3d渲染的情况下,OpenGL可能是一个更好的选择,然后尝试将其融入开罗系统。

  2. 如果你想要它是跨平台的,我个人会用Java或Python来做,但是大多数语言都有opengl和cairo绑定。如果java我建议尝试LWJGL。

  3. 您还需要考虑使用哪种UI框架,因为您可能需要按钮和所有爵士乐。我个人喜欢Qt,但WPF也很不错。

  4. 请参阅此处了解Cairo文档:http://cairographics.org/documentation/

    此外,这个问题出现在这里,评论主题中有更多建议:http://www.gamedev.net/topic/479476-how-would-you-program-a-pfd-primary-flight-display/

    我不确定cairo的动画效果如何,但这里有一个教程证明:http://cairographics.org/threaded_animation_with_cairo/

答案 1 :(得分:0)

我不认为某些特定的库会完成所有要求。可能你需要混合使用它们。

如果你问我,我会选择web ui框架的组合。根据您共享的图像,确保大多数图形组件都可以使用ExtJs框架构建(请参阅以下示例:http://www.sencha.com/products/extjs/examples/http://docs.sencha.com/ext-js/4-2/extjs-build/examples/charts/Gauge.htmlhttp://docs.sencha.com/ext-js/4-2/extjs-build/examples/sandbox/sandbox.html)。 对于中央面板,可能没有提供类似通用小部件的库,因此我会选择自定义HTML5 Canvas实现(http://en.wikipedia.org/wiki/Canvas_element)。

只是想补充一点,我只是因为以下方式转向网络:

  • 几乎所有图书馆的社区都很大
  • 跨平台问题不会成为问题
  • 大多数Web UI框架都很成熟,并且可以随时使用现成的小部件。
  • 与外部API进行通信(如您所提到的Google地图)使用网络是一件小事。

答案 2 :(得分:-1)

啊,这是我在建立我的最后一年工程项目时遇到的个人经历(偶然是一个可以飞行的机器人) - 而且我之前已经建立了这样的东西。

我使用Java来制作带有这种飞行显示系统的图形和遥测数据工具(这已经足够了)。

但是如果你对编程语言很好,那么你可以用你选择的任何语言来做。是的,Mac + OpenGL + ObjC也是很好的组合。我的目标是尽可能保持代码的可移植性。