Графическая библиотека для C ++ - PullRequest
4 голосов
/ 17 декабря 2011

Я работаю над проектом симуляции на C ++, и мне нужно вывести некоторую информацию графически. Я искал об этом и нашел несколько библиотек, но большинство из них просто делают заговоры или что-то в этом роде. Существуют также библиотеки, такие как EasyBMP, которые можно использовать для создания растровых изображений или аналогичных форматов изображений. Есть также некоторые библиотеки, такие как OpenGL, DirectX и SDL, которые позволяют аппаратно ускоренную графику в реальном времени. Моя проблема в том, что мне нужна библиотека для графики с аппаратным ускорением в реальном времени. Как новичок в этой области, я не могу придумывать что-то вроде OpenGL или DirectX. Мне нужно работать только с 2D-графикой, поэтому я не думаю, что нужно тратить свое время на изучение OpenGL или чего-то еще. Лучше быть кроссплатформенным, но это не обязательно. Если вам известен хороший источник информации о SDL, OpenGL или DirectX, я был бы рад узнать об этом.

PS: Моя целевая платформа - Windows.

Ответы [ 6 ]

5 голосов
/ 17 декабря 2011

Давайте создадим еще один список 2D движков:

Все эти комбинации поддерживают 2D-графику + ввод.

3 голосов
/ 18 декабря 2011

Изучив основы OpenGL на 10-недельном университетском курсе, который был в основном сфокусирован на моделировании статистических данных, я определенно думаю, что OpenGL будет разумным вариантом для простого в освоении графического пакета для 2D-моделирования в реальном времени.

Хотя для OpenGL определенно есть сложность, вам не нужно разбираться со всеми этими функциями, которые вам не нужны, для создания базового проекта с графическим экраном - это почти весь стандартный код, который вам не нужен хорошо понимаю, вы можете практически скопировать и вставить из примера проекта. Например, вот несколько примеров программ , которые идут с учебником по OpenGL. Конфигурирование всей библиотеки как части вашего проекта - это всего лишь добавление пары файлов .lib в определенное место в настройках конфигурации, для того, чтобы она «что-то сделала», не требуется много, и тогда вам потребуется только чтобы познакомиться с небольшим подмножеством функций, мне это казалось почти проще, чем, скажем, рисование 2D-объектов в Java.

Я на самом деле не знаю ни одного из этих других инструментов моделирования, просто подумал, что я бы выбросил туда, что я не буду писать это слишком быстро, так как это "слишком сложно", было бы разумно рассмотреть даже без огромного фона в C ++ или графике и т. д.

0 голосов
/ 14 февраля 2019

Вы можете программировать на C ++ CLI / CLR и использовать Windows API как

  1. Direct2D: на MSDN
  2. GDI +

Вот интересная ссылка на MSDN

0 голосов
/ 27 марта 2017

Если вам нужно только построить отладочную информацию, я создал инструмент для построения графики и опубликовал его несколько часов назад.

https://www.youtube.com/watch?v=xD080qQVaD8&feature=youtu.be

https://github.com/burlachenkok/plotter_plusplus

Чтобы использовать этот инструмент, вы можете использовать настольный компьютер для отображения графики.

Но целевой проект (симулятор) можно запустить где угодно на любом языке на любой платформе - для обновления графики достаточно просто отправить данные по сети.

0 голосов
/ 17 декабря 2011

Для 2D я рекомендую HGE , игровой движок использует DX в качестве графического драйвера, с которым легко начать. Он может работать только под Windows, но здесь - это порт для MAC / UNIX

Проблема, с которой вы столкнетесь при использовании SDL, заключается в том, что он не поддерживает аппаратное ускорение. Да, он поддерживает OpenGL, но если вы хотите использовать его с opengl, вы должны делать все самостоятельно,

0 голосов
/ 17 декабря 2011

Существует довольно хорошее руководство по SDL, которое показывает, как захватывать ввод и т. Д. На http://lazyfoo.net/SDL_tutorials/

Он основан на игровом дизайне, но из него вы можете узнать концепции SDL-программы.

Надеюсь, что это полезно для вашего вопроса "Если вы знаете какой-то хороший источник информации о SDL, OpenGL или DirectX, я был бы рад узнать об этом."

...