opengl 样例1

#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <GL/glut.h>
#include <math.h>
using namespace std;
void display(void){
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0,1.0,1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.25,0.25,0.0);
        glVertex3f(0.75,0.25,0.0);
        glVertex3f(0.75,0.75,0.0);
        glVertex3f(0.25,0.75,0.0);
    glEnd();
    glFlush();
}
void init(){
    glClearColor(0.0,0.0,0.0,0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
void main(int argc,char*argv[]){
    glutInit(&argc,argv);//对glut进行初始化,
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//指定是RGBA模式还是颜色索引模式,指定单缓冲还是双缓冲
    glutInitWindowPosition(100,100);//窗口左上角
    glutInitWindowSize(250,250);//窗口大小,以像素为单位
    glutCreateWindow("GEOMETRIC");//窗口名称
    init();
    glutDisplayFunc(display);//事件回调函数,当GLUT确定一个窗口内容需要重新显示时,通过glutDisplayFunc()注册的函数会执行。把重绘场景所需要的所有代码放在这个显示回调函数里。
    //如果程序修改了窗口内容,需要调用glutPostRedisplay();这个函数会指示glutMainLoop()调用已注册的显示回调函数。
    glutMainLoop();//必须调用glutMainLoop()来启动程序。所有已经创建的窗口会在这个时候显示。
}
//此外,可以使用下面的函数注册一些回调函数,当指定的事件发生的时候,这些函数会被调用。
//glutReshapeFunc(void(*func)int w,int h) 表示当窗口大小发生变化时候,应该采取什么行动。
//glutKeyBoardFunc(void(*func)(unsigned char key,int x,int y))和glutMouseFunc(void(*func)(int button,int state,int x,int y))允许把键盘上的一个按键或者鼠标上的一个按钮与一个函数关联。当这个键或者按钮被按下或者释放的时候,函数会被调用。
//glutMotionFunc(void(*func)(int x,int y))注册了一个函数,当按下一个鼠标按钮或者移动鼠标时,这个函数会调用

wKiom1MNYtuzJQUFAABeHaeMLRc246.jpg

你可能感兴趣的:(display,include,图形化界面)