Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/56: Рейтинг темы: голосов - 56, средняя оценка - 4.93
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33

Поддерживаемые библиотеки для 2D графики

23.09.2019, 17:02. Показов 11015. Ответов 32

Студворк — интернет-сервис помощи студентам
Хочу спросить народ, какие библиотеки для 2D графики сейчас поддерживаются, например, я знаю библиотеку SFML и она вроде как поддерживается, выходят новые версии и так далее. А какие библиотеки ещё поддерживаются?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2019, 17:02
Ответы с готовыми решениями:

С++ библиотеки для консольной графики
Доброго времени суток. Какие в с++ есть библиотеки для создания консольной графики? Заранее спасибо.

Библиотеки для написания графики и GUI
начал изучать с. В будущем в качестве проекта хочу написать программу, которая бы представляла тело человека с движущейся графикой(клетки...

Нугеты\библиотеки для построения графики
Всем привет надо найти какие-то готовые бесплатные решения (для некоммерческого) проекта для автоматической генерации диаграмм. Каких...

32
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
23.09.2019, 17:56
Лучший ответ Сообщение было отмечено AlexNaraito как решение

Решение

Цитата Сообщение от AlexNaraito Посмотреть сообщение
А какие библиотеки ещё поддерживаются?
SDL
1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
24.09.2019, 21:14  [ТС]
А ешё какие?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
24.09.2019, 21:28
Лучший ответ Сообщение было отмечено AlexNaraito как решение

Решение

Цитата Сообщение от AlexNaraito Посмотреть сообщение
А ешё какие?
Да вроде и все, если говорить о библиотеках, ну есть еще cocos-2d, но это уже не просто библиотека
1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
24.09.2019, 23:20  [ТС]
Ясно
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
25.09.2019, 10:13
Есть еще всякие GUI-библиотеки вроде gtk, qt, tcl/tk и т.п., но они не столько двумерная графика, сколько элементы управления: окна, кнопочки и т.п. Наверное, для вас это избыточно.
И есть низкоуровневые библиотеки вроде Xlib или winapi, но они платформо-зависимые и низкоуровневые, то есть для такого же результата придется написать втрое больше кода.

Добавлено через 1 минуту
А, ну и конечно, для работы с видеокартой: OpenGL, Vulkan, DirectX: рисовать двумерную графику они умеют, но вот взаимодействовать с операционкой - хотя бы создать себе окно, куда рисовать - нет.
1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
25.09.2019, 15:05  [ТС]
Спасибо за ответ, но хочу узнать что сейчас лучше изучать? Что посоветуете изучать для кроссплатформенной разработки? И для 2D игр подойдёт связка из QT и openGL?
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
25.09.2019, 19:20
Цитата Сообщение от AlexNaraito Посмотреть сообщение
И для 2D игр подойдёт связка из QT и openGL?
Да, подойдёт. Я думаю, что для кроссплатформы на C++, это наиболее простой вариант. Вы захватываете сразу и мобильные платформы. Попробуйте запустить "hello, world" на эмуляторе Android. Ещё больше интереса появится. В Qt есть куча всего полезного для разработки 2D игр. Например, классы для сетевых игр, например, QTcpSocket. Мне кажется, что сетевые игры интереснее писать. Написание своего маленького 2D движка - это повод изучать геометрию, линейную алгебру, и даже физику (примитивную игровую, либо подключать библиотеку Box2D для физики). Подключайте готовую библиотеку для работы с линейной алгеброй GLM (OpenGL Mathematics), или если хотите можете писать свои классы для работы с матрицами и векторами. Можете начать с этих переводных уроков на русском: learnopengl. Урок 1.1 — OpenGL / Хабр - Habr или читать оригинальные уроки на английском: https://learnopengl.com/ (ссылка недоступна в РФ, используйте VPN, например, плагин для браузера Browsec)

Я сам очень увлекаюсь этой темой связанной с математикой, простыми 2D играми, кроссплатформой, 3D графикой и т.д. Свой движок я пишу на C# + OpenTK (это кроссплатформерная библиотека, в том числе для мобильных через Xamarin), а вторую версию на TypeScript и WebGL.
1
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 14:16
Цитата Сообщение от AlexNaraito Посмотреть сообщение
я знаю библиотеку SFML и она вроде как поддерживается
Стоит отметить, что SFML и SDL можно так же использовать для рисования на чистом OpenGL - для создания окна и для клавиатуры/мыши. Эти библиотеки обеспечат более простую кроссплатформенность на C++. В туториалах и книга чаще используют GLFW. Но я бы на вашем месте всё-таки использовал бы Qt, потому что в этом случае вы параллельно будете практиковаться с данным фреймворком. Вы сможете писать полезные неигровые 3D приложения, в которых сможете совмещать 3D графику и GUI из Qt. Для своей игры вы можете написать редактор уровней, если популярный Tiled Map Editor чем-то не устроит. Я для комбинации OpenGL и GUI в неигровых 3D приложениях использую связку OpenTK.GLControl и WinForms/WPF, а так же HTML/CSS для WebGL/TypeScript версии своих 3D приложений. У OpenGL есть преимущество, что вы можете использовать этот API для 2D и 3D графики, а API библиотек SFML и SDL - только для 2D.
0
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
26.09.2019, 14:32  [ТС]
Ясно, спасибо за ответы. А для visual studio что лучше WinForms + OpenGL или лучше изучать, что-то другое? Про кроссплатформенность сейчас речи не идёт.
Если кому хочется, то могут высказать своё мнение по этому поводу.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
26.09.2019, 17:29
Цитата Сообщение от AlexNaraito Посмотреть сообщение
И для 2D игр подойдёт связка из QT и openGL?
Пойдет, от чего же.
Но QT для игр несколько избыточен, лучше SDL/SFML.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 18:10
Лучший ответ Сообщение было отмечено AlexNaraito как решение

Решение

Цитата Сообщение от AlexNaraito Посмотреть сообщение
А для visual studio что лучше WinForms + OpenGL или лучше изучать, что-то другое? Про кроссплатформенность сейчас речи не идёт.
На форуме есть раздел: C++/CLI Windows Forms. Я не пробовал, не знаю, что это такое и как там работать с OpenGL из C++/CLI.

Добавлено через 8 минут
Цитата Сообщение от AlexNaraito Посмотреть сообщение
А для visual studio что лучше WinForms + OpenGL или лучше изучать, что-то другое? Про кроссплатформенность сейчас речи не идёт.
Для Visual Studio и WinForms роднее всего и удобнее использовать C#. Для игр лучше взять OpenTK. Советую книгу, как написать свой маленький движок для 2D игр на OpenGL: C# Game Programming: For Serious Game Creation

Мой пример и туториал, где можно начать:

Туториал: https://opentk.net/learn

1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
26.09.2019, 18:36  [ТС]
Ясно, я попробую

Добавлено через 10 минут
Вопрос, а если использовать GLFW для обучения и хобби? Он как сильно сложный? И у меня вроде как не CLI, ну, по крайне мере открыто об этом не написано, а вроде как должно.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 19:04
Цитата Сообщение от AlexNaraito Посмотреть сообщение
Вопрос, а если использовать GLFW для обучения и хобби? Он как сильно сложный?
Раз вы будете использовать чистый OpenGL, то для вас будет одинаково по сложности: GLFW, SDL, SFML, Qt, потому что от этих библиотек вам нужно будет очень мало: создать окно, написать обработчики нажатий клавиш и мыши. Вы найдёте этот короткий код и забудете о нём. Иногда вам нужно будет что-то погуглить, например, как сделать FullScreen (на весь экран) вашу игру.

Добавлено через 6 минут
Найдите кучу свежих книг на английском, как делать игры, используя OpenGL. За одно будете английский изучать. Всё равно вся документация на английском, вам так и так его нужно изучать. Главное, пишите простые игры, а не просто читайте. Нужно на практике всё пробовать. Лучше тренироваться на самых простых играх: змейка, арканойд, пакман, танчики и т.д. По мере получения знаний и навыков совершенствуйте свои игры постепенно. Самое интересное, когда пишешь код и что-то выходит, что задумывал. Рекомендую взять старт с туториала: https://noobtuts.com/cpp/2d-pong-game
1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
26.09.2019, 20:42  [ТС]
Вопрос чисто из-за любопытства, что лучше для программиста с++ windows или дистрибутив linux какой-нибудь?
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 21:31
Цитата Сообщение от AlexNaraito Посмотреть сообщение
что лучше для программиста с++ windows или дистрибутив linux какой-нибудь?
Почему macOS здесь не перечислен? Я хочу купить Mac, чтобы собирать билды для iOS из Xamarin и использовать Mac для работы, вместе с Windows. "Что лучше" - это дело вкуса, потому что сколько людей столько и мнений. Для одних это кажется лучше, для других - другое. Он многих факторов зависит и от личных предпочтений. Попробуйте спросить в разделах C++ и C#: "На каком языке лучше начинать программировать? На С++ или на C#?" и вы увидите, что, естественно, мнения разделятся.
0
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
26.09.2019, 21:32  [ТС]
Ясно, спасибо за ответы
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 21:44
В итоге, на чём решили остановиться? SDL, GLFW, SFML, Qt?

Приведу несколько ссылок, некоторые я уже приводил, где можно начать изучать с нуля актуальный OpenGL 3:
Английские ссылки недоступны в РФ. Используйте VPN. Например, плагин для браузера Browsec.
1
6 / 5 / 1
Регистрация: 14.09.2019
Сообщений: 33
26.09.2019, 23:11  [ТС]
Пока буду учится opengl + glfw на visual studio.
1
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,983
Записей в блоге: 239
26.09.2019, 23:42
Цитата Сообщение от AlexNaraito Посмотреть сообщение
opengl + glfw
К слову сказать, GLFW есть на Python и Java (включено в LWJGL3). Я пробовал.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2019, 23:42
Помогаю со студенческими работами здесь

Обмен УТ 11 ---> БП 3 Поддерживаемые версии для обмена
Добрый день уважаемые форумчане !!! Прошу помощи у гуру ... Подскажите пожалуйста - допустим есть типовой обмен УТ 11 ---> БП 3 ... ...

Подключение библиотеки графики graphics.h
Приветствую форумчане, столкнулся с такой проблемой, необходимо подключить графику к приложению. Все делаю по инструкции(в pdf) в...

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin')
какие библиотеки нужны для функций 'cout' и 'cin' ???

Поддерживаемые типы шрифтов
Какой тип шрифтов в Visual C++ 2008 не поддерживается? Дополнял (редактировал) шрифт в FontForge, в итоге на его иконке буква О сменилась...

Как узнать поддерживаемые монитором разрешения?
Нужно узнать режимы поддерживаемые монитором (разрешение\частота) Все примеры кода которые находил в гугле - выдают режимы видеокарты но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru