我是熟悉Ada,C,Obj.C(iOS)和C#的开发人员。我想创建一个应用程序来显示我正在构建的机器人的一些数据。但是我之前从未使用Mac库或OpenGL完成图形处理。
我想要实现的目标如下图所示。我已经测试了Processing来创建一些东西。但它太复杂了,而且这种应用程序的处理功能还远远不够强大。如果不编写一些令人讨厌的代码,它甚至无法围绕其中心旋转一条线。
要求:
绘图功能(例如,相对于时间绘制的电压),Google地图API,渐变,2D动画,蒙版。
问题:
稍后,我想添加一个谷歌地图来显示飞机的位置。所有数据都通过Wifi传输。为10Hz。
答案 0 :(得分:0)
以下是使用opengl和js执行此操作的帖子:http://www.jpct.net/forum2/index.php?topic=3076.0
是的,您可以在opengl中执行此操作,但您可以考虑使用2d渲染的Cairo,可能更简单。这当然取决于你是否需要3D渲染。在3d渲染的情况下,OpenGL可能是一个更好的选择,然后尝试将其融入开罗系统。
如果你想要它是跨平台的,我个人会用Java或Python来做,但是大多数语言都有opengl和cairo绑定。如果java我建议尝试LWJGL。
您还需要考虑使用哪种UI框架,因为您可能需要按钮和所有爵士乐。我个人喜欢Qt,但WPF也很不错。
请参阅此处了解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.html,http://docs.sencha.com/ext-js/4-2/extjs-build/examples/sandbox/sandbox.html)。 对于中央面板,可能没有提供类似通用小部件的库,因此我会选择自定义HTML5 Canvas实现(http://en.wikipedia.org/wiki/Canvas_element)。
只是想补充一点,我只是因为以下方式转向网络:
答案 2 :(得分:-1)
啊,这是我在建立我的最后一年工程项目时遇到的个人经历(偶然是一个可以飞行的机器人) - 而且我之前已经建立了这样的东西。
我使用Java来制作带有这种飞行显示系统的图形和遥测数据工具(这已经足够了)。
但是如果你对编程语言很好,那么你可以用你选择的任何语言来做。是的,Mac + OpenGL + ObjC也是很好的组合。我的目标是尽可能保持代码的可移植性。