Прямая линия в с ++ - PullRequest
       1

Прямая линия в с ++

1 голос
/ 26 октября 2011

Какие библиотеки предоставляет Windows для рисования линий? Меня интересуют только 2D библиотеки, а не OpenGL или DirectX. Я работаю в C ++.

Ответы [ 4 ]

9 голосов
/ 26 октября 2011
cout << ".------------------------------------------------------------." << endl;

cout << ".\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         |\n\
         ." << endl;

РЕДАКТИРОВАТЬ : Забыл точки.

РЕДАКТИРОВАТЬ 2: Диагональ:

for( int i=0; i<10; i++ )
{
    for( int j=0; j<10; j++ )
    {       
        if( i == j )
        {
            for( int k=0; k<i; k++ )
            {
                cout << " ";
            }

            if( i == 0 || i == 9 )
            {
                cout << ".\n";
            }
            else
            {
                cout << "\\\n";
            }
        }
    }       
}
3 голосов
/ 26 октября 2011

Зависит от вашей платформы.

В Windows вы можете использовать GDI или GDI +.

Для Mac OS я уверен, что и Carbon, и Cocoa предоставляют эту функцию - хотя я признаюсь, что немногознание API.

Qt предоставляет кросс-платформенные библиотеки рисования, которые будут работать на любом из Linux, Windows или Mac.

EDIT:

Direct2D - еще одна опция C ++ дляОкна.Это полностью аппаратное ускорение тоже, что круто.Что касается рисования в полноэкранном окне, оно ничем не отличается от рисования в обычном окне.Вам просто потребуется дополнительный код, чтобы развернуть окно и установить его в полноэкранный режим.

1 голос
/ 26 октября 2011

Здесь - пример того, как сделать это на C (++) без какой-либо нестандартной библиотеки.

0 голосов
/ 26 октября 2011

Это зависит.На какой ты системе?Как бы вы хотели нарисовать это?В 3D или 2D?Вы хотите полноэкранный режим?

Честно говоря, OpenGL довольно прост в использовании с такой библиотекой, как GLUT.После того, как вы его настроите, все, что нужно, это

glBegin(GL_LINES);
    //Vertex pair
    glVertex2f(...);
    glVertex2f(...);
glEnd();

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

Две другие быстрые библиотеки, которые приходят на ум:

  1. SDL Похоже на вашу библиотеку: она имеет быструю настройку, множество учебных пособий,и это просто C. К сожалению, вам придется использовать другую библиотеку (например, SDL_Draw), чтобы на самом деле нарисовать линию.
  2. Аллегро Я использовал эту библиотеку несколько лет назад, но не с тех пор.Насколько я помню, это очень похоже на SDL по форме и функциям.Он хорошо работает в Windows, но не так прост, как SDL в OS X. У Allegro (!) Есть встроенная функция рисования линий, называемая line () (нужно любить эту краткость).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...