Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;OpenGl/Glut无法绘制_C++_Opengl_Drawing_Glut - Fatal编程技术网

C++ C++;OpenGl/Glut无法绘制

C++ C++;OpenGl/Glut无法绘制,c++,opengl,drawing,glut,C++,Opengl,Drawing,Glut,我试着在窗户上画一个三角形。我以前在前面的代码中绘制过形状,并查找了常见问题,例如无法刷新或未清除颜色缓冲区 不管我尝试了什么,我都无法在屏幕上画出任何东西,即使我已经简化了我的代码,使其看起来基本上与我以前的(正在工作的!)代码一模一样。我只有一个主视图和一个渲染器: // Declarations // void Render(void); //Call the drawing functions int main(int argc, char *argv[]) { glutIni

我试着在窗户上画一个三角形。我以前在前面的代码中绘制过形状,并查找了常见问题,例如无法刷新或未清除颜色缓冲区

不管我尝试了什么,我都无法在屏幕上画出任何东西,即使我已经简化了我的代码,使其看起来基本上与我以前的(正在工作的!)代码一模一样。我只有一个主视图和一个渲染器:

// Declarations //
void Render(void); //Call the drawing functions

int main(int argc, char *argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(20,20);
    glutCreateWindow("Triangle Test");

    //prepare for drawing
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);

    //now draw
    glutDisplayFunc(Render);

    glutMainLoop();
}


// ---- Render Function ----
void Render(void)
{

    // Draw a triangle
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_LINE_STRIP);

    glVertex2f(100.0f, 20.0f);
    glVertex2f(0.0f, 20.0f);
    glVertex2f(20.0f, 50.0f);

    glEnd();
    glFlush();
}

在运行时,它使用我设置的背景色(在本例中为黑色)绘制一个窗口,而不使用其他颜色。我完全被难住了。堆栈上的所有其他问题似乎都由我在这里的东西(即glFlush)解决了,它实际上与我的旧代码相同,这很好。有什么想法吗?

你在画一条比你的窗户还大的线条。您需要设置矩阵,以便看到更大的区域,绘制更小的多边形,或者通过绘制三角形而不是线条条来绘制填充多边形。

您绘制的线条条比窗口大。您需要设置矩阵,以便看到更大的区域,绘制更小的多边形,或者通过绘制三角形而不是线条条来绘制填充多边形。

是的,回到页面,因为我刚刚解决了这个问题。典型的笨蛋。谢谢,回到页面,因为我刚刚发现了。典型的笨蛋。谢谢你设置投影?在Z剪裁边界内移动顶点?在将窗口放置到屏幕上之后,在绘图之前清除帧缓冲区,而不是在窗口显示之前进行?设置投影?在Z剪裁边界内移动顶点?在将窗口放置到屏幕上之后,在绘图之前清除帧缓冲区,而不是在窗口显示之前执行此操作?