c ++中的直线

时间:2011-10-26 05:53:31

标签: c++ graphics

Windows提供哪些库来绘制线条?我只对2D库感兴趣,而不是OpenGL或DirectX。我在C ++工作。

4 个答案:

答案 0 :(得分:9)

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";
            }
        }
    }       
}

答案 1 :(得分:3)

取决于您的平台。

在Windows中,您可以使用GDI或GDI +。

对于Mac OS,我确信Carbon和Cocoa都提供此功能 - 尽管我承认对这两种API都知之甚少。

Qt提供可在Linux,Windows或Mac上运行的跨平台绘图库。

编辑:

Direct2D是Windows的另一个C ++选项。它也是完全硬件加速的,很酷。至于在全屏窗口上绘图,它与在常规窗口中绘图没有什么不同。您只需要一些额外的代码来最大化窗口并将其设置为全屏模式。

答案 2 :(得分:1)

Here是一个如何在没有任何非标准库的情况下在C(++)中执行此操作的示例。

答案 3 :(得分:0)

这取决于。你在用什么系统?你想怎么画它?在3D还是2D?你想要全屏吗?

老实说,OpenGL非常容易使用像GLUT这样的库。设置完毕后,只需

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

(纯粹主义者会因为使用一种不在3.0标准中的OpenGL形式而对我大吼大叫,但我认为这不是一个需要长期兼容的主要项目。)

我想到的另外两个快速库:

  1. SDL 听起来像你的库:它有快速设置,很多教程,而且很简单C.不幸的是,你将不得不使用另一个库(即SDL_Draw)来实际绘制线。
  2. 快板 几年前我使用过这个库,但从那时起就没用过。我的回忆是它在形式和功能方面与SDL很像。它在Windows上运行良好,但不像OS X上的SDL那么容易.Allegro(!)有一个内置的线条绘图功能,叫做line()(爱得很简洁)。