m0_46615473 2020-11-23 10:47 采纳率: 100%
浏览 136
已采纳

为什么我的OPENGL代码运行出来只是一个白窗?

小白学习OPENGL,书上的代码写下来在我的电脑上跑出来就是一个白窗,可是不加glBegin和glEnd的时候就能画出来图像,百思不得其解,求助各位大佬。

代码如下,是一个很简单的画一条直线的代码

#include <GL/glut.h>
void init(void)
{
    glClearColor(1.0,1.0,1.0,0.0);//将窗口背景设置为白色
    glMatrixMode(GL_PROJECTION);//设置投影参数
    gluOrtho2D(0.0, 200.0, 0.0, 150.0);//显示窗口以(0,0)为左下角,(200,150)为右上角

}
void lineSegment(void)
{
    glClear(GL_COLOR_BUFFER_BIT);//清空显示窗口
    glColor3f(1.0, 0.0, 0.0); //red line
    glVertex2i(180, 15);
    glVertex2i(10, 145);
    glEnd();
    glFlush();

}
void main(int argc, char** argv)
{
    glutInit(&argc, argv);//初始化glut
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//选择显示模式。
    glutInitWindowPosition(50, 100);
    glutInitWindowSize(400, 300);
    glutCreateWindow("An Example OpenGL Program");
    init();//执行初始化过程
    glutDisplayFunc(lineSegment);//发送图形到显示窗口。
    glutMainLoop();
}
PS:可以帮忙的大佬我愿意给赏金,但我不知道怎么设置,我可以私下给发红包,大家都很忙,谢谢各位大佬!!!!

  • 写回答

1条回答 默认 最新

  • qq_25376897 2020-11-23 11:36
    关注
    #include <GL/glut.h>
    #include <GL/gl.h>
    
    void init(void)
    {
        glClearColor(1.0,1.0,1.0,0.0);//将窗口背景设置为白色
        glMatrixMode(GL_PROJECTION);//设置投影参数
        gluOrtho2D(0.0, 200.0, 0.0, 150.0);//显示窗口以(0,0)为左下角,(200,150)为右上角
    }
    
    void linesegment(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);//清空显示窗口
        glColor3f(1.0, 0.0, 0.0); //red line
        glBegin(GL_LINES);//显示一组线段,其端点坐标在glVertex函数中指定
        glVertex2i(180, 15);
        glVertex2i(10, 145);
        glEnd();
        glFlush();
    }
    
    int main(int argc,char** argv)
    {
        glutInit(&argc, argv);//初始化glut
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//选择显示模式。
        glutInitWindowPosition(50, 100);
        glutInitWindowSize(400, 300);
        glutCreateWindow("An Example OpenGL Program");
        init();//执行初始化过程
        glutDisplayFunc(lineSegment);//发送图形到显示窗口。
        glutMainLoop();
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵