计算机图形学02一一OpenGL 代码实现绘制一条线

OpenGL 有一些自己的规则:

函数名的命名规范 是以gl开头 之后每一组成词的第一个字母大写 例如
glBegin , glCopyPixels

常量以GL开头 后加_ 之后所以字母大写 例如
GL_2D , GL_RGB

数据类型它自带了自己的数据类型 写法 就是在我们之前的数据类型前面加GL 例如
GLbyte , GLint

OpenGL 自己有一些实用的函数(OpenGL Utility,GLU) 这个是不能在屏幕上显示的库
因为这个库与设备无关的函数 窗口管理是依赖于计算机的  
那怎么显示?
在window系统下 WGL函数提供了窗口系统到OpenGL的接口


现在我们来开始绘制一条线把  

绘制前的准备 :

glut32.dll glut.dll 放在C:\Windows\SysWOW64  这是64位的
32位的放在 C:\Windows\System32 

glut32.lib,glut.lib 放在VS 对应的 VS2012\VC\lib
下面

好了准备完成 上代码

#include //包含了WGL函数
#include //OpenGL库
#include //OpenGL库
#include //标准输入输出函数
#include //最常用的系统函数
#include //数学函数
#include //处理窗口管理操作




//初始化操作
void init()
{
glClearColor(1.0,1.0,1.0,0);//设置背景颜色 不过这样背景颜色是不显示的



//这段是要告诉OpenGL怎么将图形投影到显示器中 我们是2维线 OpenGL看作是三维线的特例来处理
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,200.0,0.0,150.0);//这个表示使用正投影将世界坐标系二维矩形区域映射到屏幕上  x 0 - 200 y 0 150
//只要是在该矩形内定义的对象 都会显示窗口上
}


//显示线段
void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);//这样背景色才会显示
//GL_COLOR_BUFFER_BIT 是OpenGL的常数 用来指定颜色缓存中的位值,该缓存将
//使用glClearColor函数中指定的值来设定


glColor3f(1.0,0,0);//设置对象的颜色


glBegin(GL_LINES);
glVertex2i(180,15);
glVertex2i(10,145);
glEnd();


glFlush(); //强制清空所以缓存来处理OpenGL函数
}


int main(int argc, char *argv[])
{
glutInit(&argc,argv);//初始化GLUT


glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设置显示窗口的缓存和颜色模式 默认都是单缓存和RGB颜色
//后面将会更详细地讨论颜色模型及动画应用的双缓存 和 观察三维场景的参数选项等其他选项


glutInitWindowPosition(50,100);//显示的位置


glutInitWindowSize(400,300);//显示的大小


glutCreateWindow("An Example OpenGL Program");//显示窗口在创建时给点标题




init();
//lineSegment 这个是OpenGL定义一的线段


glutDisplayFunc(lineSegment);//将图赋值给显示窗口

glutMainLoop();//加上这段图片才会显示出来 还会检查鼠标 键盘等设备


}

效果展现:


计算机图形学02一一OpenGL 代码实现绘制一条线_第1张图片



那些库可以去网速找找很多 















你可能感兴趣的:(计算机图形学)