您的位置:首页 > 运维架构

OpenGL学习笔记1 —— 画点

2014-05-07 22:11 218 查看
#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版
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: