2013-04-07 5 views
2

Я разработчик, знакомый с Ada, C, Obj.C (iOS) и C#. Я хотел бы создать приложение, чтобы показать некоторые данные о роботе, который я создаю. Однако я никогда не делал графику с Mac-библиотеками или OpenGL раньше.Нужно руководствоваться реализацией основного дисплея полетов

То, что я пытаюсь достичь, показано на изображении ниже. Я тестировал Обработку, чтобы создать кое-что. Но это слишком сложно, и для этого приложения обработка далеко не эффективна. Он даже не может вращать линию вокруг своего центра, не написав какой-то неприятный код.

Требование:
возможность Graphing (например, напряжение втягивается по времени), Google Maps API, градиенты, 2D анимации, маска.

Вопросы:

  1. Что я должен учиться? Возможно ли это реализовать с использованием только библиотек/фреймов Mac или использовать OpenGL?
  2. Лучше всего это сделать, используя Obj c? Или java стоит обучения? Насколько хороша Java с графикой? Дело в том, что если я запрограммирую это, используя Obj C, то это не перекрестная платформа.
  3. Любые другие советы, которые вы можете дать?

Позже, я хотел бы добавить карты Google, чтобы показать положение самолета. Все данные передаются через Wi-Fi. 10Гц.

enter image description here

+1

Требования: Графические возможности (например, напряжение, оттянутое по времени), API карт Google, градиенты, 2D-анимации, маски. '- Где это будет выполняться? WPF - лучшая инфраструктура пользовательского интерфейса в истории человечества и имеет встроенную поддержку всех этих вещей, о которых вы упомянули, но она работает только в Windows = ((XP или новее) –

+0

Как упоминалось в HighCore, это дисплей для встроенного оборудования , рабочий стол gui или web gui? –

+0

Рабочий стол, а затем и андроид. – 2013-04-07 23:12:19

ответ

0

Вот нить кто-то делает это с OpenGL и ЯШ: http://www.jpct.net/forum2/index.php?topic=3076.0

  1. Да, вы можете сделать это в OpenGL, но вы можете рассмотреть Каир, который является 2d рендеринга и может быть проще. Это определенно зависит от того, нужен ли вам 3D-рендеринг или нет. В случае 3D рендеринга OpenGL может быть лучшей ставкой, а затем попытаться поместить ее в систему Каира.

  2. Если вы хотите, чтобы это была кросс-платформа, я бы сделал это на Java или Python, но для большинства языков есть привязки opengl и cairo. Если java я рекомендую попробовать LWJGL.

  3. Вам также нужно будет рассмотреть, какие рамки пользовательского интерфейса использовать, поскольку вам могут понадобиться кнопки и весь этот джаз. Мне лично нравится Qt, но WPF тоже неплох.

Смотрите здесь Каир Docs: http://cairographics.org/documentation/

Кроме того, этот вопрос пришел сюда, и есть больше предложений на комментарий резьб: http://www.gamedev.net/topic/479476-how-would-you-program-a-pfd-primary-flight-display/

Я не знаю, как отличная анимация с Каиром есть, но вот урок, демонстрирующий, что: http://cairographics.org/threaded_animation_with_cairo/

+0

Спасибо за ответ. Тем не менее, я жду большего количества опций для сравнения. – 2013-04-07 22:41:41

-1

А, это личный опыт, который у меня был, когда я построил свой последний инженерный проект (который, кстати, был роботом, который мог летать) И я уже что-то строил.

Я использовал Java для графического и телеметрического инструмента данных с системой отображения полета (и этого было достаточно).

Но если вы хорошо владеете языком программирования, вы можете сделать это на любом выбранном вами языке. Да, Mac + OpenGL + ObjC - хорошая комбинация. Моя цель состояла в том, чтобы сохранить код как можно более переносимым.

+0

downvoter позаботится прокомментировать? –

0

Я не думаю, что какая-то конкретная библиотека выполнит все требования. Вероятно, вам нужно будет использовать их.

Если вы спросите меня, Id пойдем на комбинацию веб-рамок 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 (http://en.wikipedia.org/wiki/Canvas_element).

Просто хочу добавить, что я woudl идти на веб пути просто потому, что:

  • Сообщество BIG почти любой библиотеки
  • вопросы Кроссплатформенные не будет проблемой
  • Большинство веб-интерфейса рамки являются зрелыми и имеют готовые к использованию виджеты.
  • Связь с внешними API (например, Google Maps, как вы упомянули) - это кусок торта с использованием сети.
+1

Неудача веб-метода будет проблемой из-за недостатка поддержки быстрой и надежной связи через последовательный порт. Насколько мне известно. – 2013-04-07 23:03:56

Смежные вопросы