2015-02-23 2 views
1

В старые времена (в Borland) вы можете использовать заголовочный файл graphics.h в c и C++ для рисования графики, например линий, квадратов или кругов. Это было поддержано turbo C++.Поддерживает ли C++ рисование графики самостоятельно?

В настоящее время я предполагаю, что рекомендованный способ рисования графики использует OpenGL или DirectX.

Я просто хочу знать, существует ли способ рисовать основную графику как строки в C++, аналогично тому, как мы это делали в tC++. Если да, то как?

Почему: Это все началось, когда я не смог решить проблему на конкурсе, попросившую меня нарисовать некоторые кривые, используя C++. Они использовали tC++ (!?!) И ожидали, что мы будем использовать файл заголовка graphics.h.

Я не знал об этом, потому что не ожидал, что мне когда-нибудь понадобится рисовать графику в C++ этим (устаревшим) способом. В любом случае, я все еще пытаюсь найти решение, в котором я использую современные компиляторы, такие как gcc (g ++) и все еще обходя OpenGL. Я не хочу возвращаться к tC++.

BTW Я использую Ubuntu и gcc. Мой способ программирования в c/C++ записывает код в текстовый редактор, а затем компилирует его с помощью CLI.

+1

Рассмотрите SDL. его портативный и довольно прямой. – sp2danny

+0

Не совсем, но (1) вы всегда можете использовать текстовый ввод/вывод для генерации, например. svg-файл, (2) есть под-библиотека обработки изображений Boost, которая включает некоторые графические примитивы, как я помню, и (3) есть предлагаемый графический интерфейс C++ на основе Cairo. И на любой данной платформе вы всегда можете получить доступ к графическим возможностям этой платформы. –

ответ

5

Короче говоря, нет. Though Herb Sutter is pushing for it, основанный на значении C++ Cairo. graphics.h никогда не был частью стандарта C++.

Как упоминалось sp2danny в комментарии, SDL является еще одной довольно широко используемой библиотекой кросс-платформ, на которую вы можете захотеть взглянуть. (Хотя, поскольку это библиотека C, я лично нашел ее немного неуклюжей, используя ее с C++, но отлично работоспособную.)

+0

Кто-нибудь знает, в чем отличие от cairomm? или * есть * там cairomm? –

+0

@ Cheersandhth.-Alf В предложении ничего не говорится о [cairomm] (http://cairographics.org/cairomm/), но есть следующее: «Начиная с API C, а не с C++ API, также предоставляется преимущество более простой потенциальной ковкости. [...] Это делает концептуально проще рассматривать и одобрять будущие предложения по изменению API, поскольку такие предложения не будут включать в себя изменение дизайна существующих классов C++, что почти наверняка необходимо будет сделать, если начальный point была C++-библиотекой ». – BoBTFish

+0

Если я не ошибаюсь, такие вещи, как Cairo, SDL и т. д., являются библиотеками, которые расширяют функциональность C++ для обеспечения поддержки графики. Предложение надеется добавить функциональность cairo в C++, так что разработчикам не придется использовать вышеуказанные библиотеки для незначительных графических требований. –

2

C++ 11 не поддерживает графику (стандартным образом, без внешних библиотек).

Если вы работаете в Linux (например, Ubuntu), существует множество способов делать графики на C или C++. Обратите внимание, что большинство настольных компьютеров Linux выше X11 (которые могут быть заменены, например, на Wayland). Вы можете использовать Qt (с его graphics framework), libsdl, Gtk, и т.д. и т.п. ...

Вы вообще бы строить свою программу вокруг некоторых event loop предоставленных вашего toolkit (например, Qt).

Если вы просто хотите построить несколько кривых и графиков, вы могли бы рассмотреть popen(3) -ную некоторую внешнюю программу, как gnuplot, graphviz и т.д ... (или сгенерировать SVG и/или HTML ...)

0

Check это может помочь: Basic Graphics library for gcc/g++ on par with graphics.h. Ответ, который я вложил.

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

Он будет иметь интерфейс на основе сокетов или разделяемой памяти с программным графическим движком, который будет выполнять все окна/рендеринг и прочее. Разумеется, это будет с открытым исходным кодом и поставляется с твердотельным установщиком Windows. Все, что вам нужно сделать, чтобы сделать что-либо, от рисования нескольких 2D-линий до программирования следующей игры Xbox, это подача команд.

Итак, скажем, вы такой парень GCC с окрашенной шерстью, как я (скала CLI!).Вы просто загрузите эту программу Windows, руководство по PDF, в котором рассказывается, что снимать по любой трубе, которую вы используете (возможно, включая трубку ... умный, нет?), Вроде как VRML. Но он создан, чтобы быть легким в освоении, и вы можете буквально открыть сокет или что-то еще и начать с ним разговаривать. Он просто отображает все, что вы отправляете.

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