计算机图形学 学习 1 基本指令及原理讲解

OpenGL

相关库

gl 库

gl库是OpenGL的核心库,包含了115个函数,函数名以g1为前缀,包括基本图元,坐标变换等

glu库

OpenGL的实用程序库, 包含43个函数,函数名以glu为前缀,包括颜色,光照,纹理,缓冲区操作,曲线,曲面等等

wgl库

Windows专用库,包含6个函数,函数名以wgl为前缀,用于练级OpenGL和window NC

aux库

OpenGL编程辅助库,包含31个函数,以aux为前缀,包括窗口管理,鼠标键盘事件处理函数,若干个基本的三维几何对象的创建函数

glut库

OpenGl的实用程序工具库,包含30个函数后,以glut为前缀,提供一个独立于操作系统的OpenGL编程接口和窗口。

函数命名规则

函数名唯一,格式如下:
< 库前缀 >< 根命令 > < 可选的参数个数 >< 可选的参数类型 >[ v ] [ * **
例如函数
glColor3f(…)g1表示这个函数来自库gl. h, color表示 该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。
这里
v**:表示可用一个指针,指向一个向量或数组;
** * **:表示可用各种方法;

数据类型

OpenGL数据类型内部表示法定义为C类型C字面值后缀
GLbyte8位整数signed charB
GLshort16位整数shortS
GLint, GLsizei32位整数longL
GLfloat, GLlampf32 位浮点数floatF
GLdouble,GLclampd64位浮点数doubleD
GLubyte, GLboolean8位无符号整数unsigned charUb
GLshort16位无符号整数unsigned shortUs
GLuint, GLenum,GLbitfield32位无符号整数unsigned longUi

绘制图形的常用指令

指定窗口背景色 glClearColor

OpenGL使用RGB颜色模式,有红绿蓝三色混合而成。代码如下:

glClearColor(1.0f,1.0f,1.0f,1.0f);

函数中的前三个参数分别代表红、绿、蓝。 由0.0到1.0之间的浮点数表示颜色值。最后一个是混合参数,0.0f代表完全透明,1.0代表完全不透明。

glClear 用指定颜色刷新窗口的颜色缓存

glClear(GL_COLOR_BUFFER_BIT);

设定投影参数

设定投影有两个步骤,这个投影就是窗口的显示位置。代码如下:

glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,200.0,0.0,150.0);

第一个函数将矩阵模型设定为投影模式,第二个函数设定了图形的显示位置范围,gluOrtho2D(0.0,200.0,0.0,150.0);表示在X轴的0~ 200,y轴的0 ~ 160 显示。

绘制图形

绘制矩形的函数为:

glRectf(50.0f,100.0f,150.0f,50.0f);

函数中的4个参数分别表示两个坐标,这两个坐标是对角的,以此来画一个矩形。


#include <windows.h>
#include <gl/gl.h>
void Initial(void){
	glClearColor(1.0f,1.0f,1.0f,1.0f);
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(0.0,200.0,0.0,150.0); 
}
void Display(void){
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0f,0.0f,0.0f);
	glRectf(50.0f,100.0f,150.0f,50.0f);
	glFlush();
}
int main(){
	glutInit(%argc,argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	gluInitWindowSize(400,300);
	glutCreateWindow("矩形");
	glutDisplayFunc(Display);
	Initial();
	glutMainLoop();
	return 0; 
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值