程序使用VS2013,C++编写,需要配置OpenGL所需的环境,具体操作可百度。
本程序实现的功能是画一条二维曲线。函数的功能备注已经很详细,有疑问可自行百度。
【程序代码】
#include
#include
#include
/*三个头文件一般是必须加的,windows.h头文件是为了与windows系统接口联系起来*/
void init(void)
{
glClearColor(1.0,1.0,1.0,0.0);//背景颜色,RGB为111,白色
glMatrixMode(GL_PROJECTION);//设定投影方式
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
/*设定映射区域,参数为(minX,maxX,minY,maxY),(minX,minY为原点);
(maxX,maxY)为右上角的点*/
}
void linesegment(void)
{
//设定曲线
glClear(GL_COLOR_BUFFER_BIT);
/*init中使用了glClearColor函数,该函数的作用是将颜色设置后,放入缓存中,
GL_COLOR_BUFFER_BIT是符号常量,是glClearColor设置到缓存中的值。
glClear函数将缓存的颜色值进行显示*/
glColor3f(0.0, 0.4, 0.2);//设定物体的RGB颜色
glBegin(GL_LINES);//显示一组之弦断,其端点坐标在glVertex函数中指定
glVertex2i(180,15);//指定第一个点
glVertex2i(10, 145);//指定第二个点
glEnd();//结束
glFlush();
/*OpenGL指令不是立即执行的。它们首先被送到指令缓冲区,然后才被送到硬件执行。
glFlush都是强制将命令缓冲区的内容提交给硬件执行。*/
}
int main(intargc,char**argv)
{
glutInit(&argc,argv);//初始化glut
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
/*设定窗口的缓存和颜色模型等选项,GLUT_SINGLE表示单个缓存,
GLUT_RGB表示RBG颜色模型*/
glutInitWindowPosition(50,100);//设置显示窗口的左上角初始位置
glutInitWindowSize(400,300);//设置窗口大小,参数分别为宽和高
glutCreateWindow("AnExample");//标题
init();
glutDisplayFunc(linesegment);
/*将图传递给显示窗口,参数是描述的一个程序,即调用这个函数
,再送到显示窗口*/
glutMainLoop();
/*glutMainLoop进入GLUT事件处理循环,让所有的与“事件”有关的函数调用无限循环。
去掉这个函数,程序窗口一打开就马上关闭了*/
return 0;
【结果】