首页 > 代码库 > OpenGL学习笔记1 —— 画点

OpenGL学习笔记1 —— 画点

#include <windows.h>   // windows系统要加这个。因为下面2个头文件的一些宏是在这个文件中定义的
#include <gl/Gl.h>
#include <gl/glut.h>    //这两个头文件在OpenGL程序中几乎必加。

//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>>    初始化
 void myInit(void)
 {
    glClearColor(1.0,1.0,0.0,0.9);       // 设置背景色:白色。前三个参数分别代表红绿蓝分量。
    glColor3f(1.0f, 0.0f, 0.0f);          // set the drawing color 
     glPointSize(4.0);               // 点的大小为4*4像素
    glMatrixMode(GL_PROJECTION);     // 
    glLoadIdentity();
    gluOrtho2D(0.0, 640.0, 0.0, 480.0);// 指定绘图时采用的坐标系统
}
//<<<<<<<<<<<<<<<<<<<<<<<< myDisplay >>>>>>>>>>>>>>>>> 绘制
void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);     // 将屏幕清除为背景色
    
    glBegin(GL_POINTS);                    
        glVertex2i(100, 50);         // 这里我们画3个点。
        glVertex2i(100, 130);
        glVertex2i(150, 130);
    glEnd();    
    
    glBegin(GL_POLYGON);                    
        glVertex2i(200, 50);         // 这里我们画一个四边形
        glVertex2i(200, 130);
        glVertex2i(350, 230);
        glVertex2i(350, 130);
    glEnd();    
    
    glFlush();                         // send all output to display 把数据从缓冲区弄到屏幕上
}

//<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>
void main(int argc, char** argv)
{
    glutInit(&argc, argv);          // ***对GLUT进行初始化
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); // ***set display mode,单缓冲/双缓冲,颜色索引模式,深度等
    glutInitWindowSize(640,480);     // ***设置窗口大小
    glutInitWindowPosition(0, 150); // ***设置窗口位置
    glutCreateWindow("my first attempt"); // ***创建窗口
    glutDisplayFunc(myDisplay);     // 显示事件回调函数
    myInit();                   
    glutMainLoop();              // ***启动程序,检测事件并进行处理
}

 

目前我是根据以下2本书进行学习:

计算机图形学——用OpenGL实现 2nd edition

OpenGL编程指南 原书第6版