glut常用函数介绍
GLSL常用内置函数汇总
GLSL常用内置函数汇总GLSL(OpenGL Shading Language)是一种用于编写着色器代码的高级编程语言,主要用于实现图形渲染管线中的着色器功能。
GLSL提供了许多内置函数,用于执行各种常见的数学运算、图形处理和纹理操作。
下面是GLSL常用的内置函数的汇总。
一、数学函数1. sin(x): 返回角度x的正弦值。
2. cos(x): 返回角度x的余弦值。
3. tan(x): 返回角度x的正切值。
4. pow(x, y): 返回x的y次幂。
5. sqrt(x): 返回x的平方根。
6. abs(x): 返回x的绝对值。
7. floor(x): 返回不大于x的最大整数。
8. ceil(x): 返回不小于x的最小整数。
9. mod(x, y): 返回x除以y的余数。
10. min(x, y): 返回x和y中的最小值。
11. max(x, y): 返回x和y中的最大值。
二、向量和矩阵函数1. length(x): 返回向量x的长度。
2. dot(x, y): 返回向量x和y的点积。
3. cross(x, y): 返回向量x和y的叉积。
4. normalize(x): 返回一个与向量x方向相同的单位向量。
三、纹理函数1. texture2D(sampler, coord): 根据指定的纹理坐标从纹理采样器sampler中获取颜色值。
2. textureCube(sampler, coord): 根据指定的纹理坐标从立方体贴图采样器sampler中获取颜色值。
3. texture2DProj(sampler, coord): 根据指定的纹理坐标从投影纹理采样器sampler中获取颜色值。
4. texture2DLod(sampler, coord, level): 根据指定的纹理坐标和LOD级别从纹理采样器sampler中获取颜色值。
5. textureCubeLod(sampler, coord, level): 根据指定的纹理坐标和LOD级别从立方体贴图采样器sampler中获取颜色值。
OpenGL库函数大全
OpenGL库函数大全OpenGL核心库核心库包含有115个函数,函数名的前缀为gl。
这部分函数用于常规的、核心的图形处理。
此函数由gl.dll来负责解释执行。
由于许多函数可以接收不同数以下几类。
据类型的参数,因此派生出来的函数原形多达300多个。
核心库中的函数主要可以分为以下几类函数:(1)绘制基本几何图元的函数。
如绘制图元的函数glBegain()、glEnd()、glNormal*()、glVertex*()。
(2)矩阵操作、几何变换和投影变换的函数。
如矩阵入栈函数glPushMatrix()、矩阵出栈函数glPopMatrix()、装载矩阵函数glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()等等。
(3)颜色、光照和材质的函数。
如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。
(4)显示列表函数、主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、glEndList()、glGenLists()、glCallList()和glDeleteLists()。
(5)纹理映射函数,主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glT exEnv*()和glTetCoord*()等。
(6)特殊效果函数。
融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。
OpenGL 函数 gluLookAt
OpenGL 函数gluLookAt()glScalef() glTranslatef()glRotatef() glFrustum()glPerspective() 的使用1.gluLookAt()——视图变换函数把自己的眼睛当成是照相机,前三个参数表示眼睛的坐标,中间三个参数表示要拍照的物体的中心位置,可以理解成焦点吧,后三个参数表示头顶的朝向,比如说头可以歪着(哈哈)。
但是我测试过,如果歪的不对,原来的正前方现在已经不是正前方了,那么就看不见物体了。
举个例子:gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//这个就表示头顶是朝着y方向gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0);//这个表示头歪了45度,头顶朝着(1.0,1.0,0.0)这个方向2.glScalef() ——模型变换函数缩放void glScalef(GLfloat x, GLfloat y, GLfloat z);模型变换的目的是设置模型的位置和方向,例如可以对模型进行旋转、移动和缩放,或者联合这几种操作。
这个函数表示模型在各轴上是如果进行缩放的。
举个例子:glScalef (1.0, 2.0, 1.0);//表示y坐标值扩大两倍,这样原本方的物体就变成长的了。
3.glTranslatef() ——模型变换函数移动void glTranslatef(GLfloat x, GLfloat y, GLfloat z);这个函数表示模型是怎样移动的。
举个例子:glTranslatef(-1.0,0.0,-2.0);//表示物体沿x负方向移动1.0,沿z轴负方向移动2.0。
所以就好像能看见侧面一样4.glRotatef()——模型变换函数旋转void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);angle表示旋转的角度(注意单位不是弧度),(x,y,z)表示转轴。
glut教程9--GLUT鼠标
GLUT教程(九)GLUT鼠标收藏在前几节,我们看了怎么使用GLUT的keyboard函数,来增加一个OpenGL程序的交互性。
现在,是时候研究下鼠标了。
GLUT的鼠标接口提供一些列的选项来增加鼠标的交互性。
也就是检测鼠标单击,和鼠标移动。
检测鼠标Clicks和键盘处理一样,GLUT为你的注册函数(也就是处理鼠标clicks事件的函数)提供了一个方法。
函数glutMouseFunc,这个函数一般在程序初始化阶段被调用。
函数原型如下:void glutMouseFunc(void(*func)(int button,int state,int x,int y));参数:func:处理鼠标click事件的函数的函数名。
从上面可以看到到,处理鼠标click事件的函数,一定有4个参数。
第一个参数表明哪个鼠标键被按下或松开,这个变量可以是下面的三个值中的一个:GLUT_LEFT_BUTTONGLUT_MIDDLE_BUTTONGLUT_RIGHT_BUTTON第二个参数表明,函数被调用发生时,鼠标的状态,也就是是被按下,或松开,可能取值如下:GLUT_DOWNGLUT_UP当函数被调用时,state的值是GLUT_DOWN,那么程序可能会假定将会有个GLUT_UP事件,甚至鼠标移动到窗口外面,也如此。
然而,如果程序调用glutMouseFunc传递NULL作为参数,那么GLUT将不会改变鼠标的状态。
剩下的两个参数(x,y)提供了鼠标当前的窗口坐标(以左上角为原点)。
检测动作(motion)GLUT 提供鼠标motion检测能力。
有两种GLUT处理的motion:active motion和passive motion。
Active motion是指鼠标移动并且有一个鼠标键被按下。
Passive motion是指当鼠标移动时,并有没鼠标键按下。
如果一个程序正在追踪鼠标,那么鼠标移动期间,没一帧将产生一个结果。
glut常用函数介绍
GLUT常用函数介绍stephenxjc_千年一笑2010-7-29对象:GLUT的入门级(初学者)关键字:GLUT、函数核心内容:主要是通过在一个具体的程序中函数的作用平台:visual studio2008,需要配置好OpenGL32.lib、GLu32.lib、GlAux.Lib、glut32.lib和相应的dll文件。
正文1示例简单的一个主函数:glutInitWindowSize() ,glutCreateWindow()等函数比较简单,程序中的介绍已经足够。
下面重点介绍其它函数。
2glutInitDisplayMode()初始化显示模式。
这里主要采用RGB模式显示,并采用双缓存模式。
双缓存模式相对的是单缓存,双缓存是现在后台缓存绘制,在绘制完成后,将后台与前台缓存交换,后台变前台,前台变后台,达到快速输出的效果。
而单缓存,在绘制时就在唯一缓存中绘制,当绘制时间比较长时,会使屏幕比较卡。
3glutKeyBoardFunc(pressKeyboard)设定键盘响应函数为pressKeyboard,函数的结构为:其中,key为返回的按键的ASCII编码,x和y为鼠标的当前的位置。
4glutSpecialFunc(specialKey)实际也是针对按键响应,但与glutKeyBoardFunc相比,前者针对的是一些特殊的按键。
包括:GLUT_KEY_F1,GLUT_KEY_F2,GLUT_KEY_F3,GLUT_KEY_F4,GLUT_KEY_F5,GLUT_KEY_F6,GLUT_KEY _F7,GLUT_KEY_F8,GLUT_KEY_F9,GLUT_KEY_F10,GLUT_KEY_F11,GLUT_KEY_F12,GLUT_KEY_LEFT, GLUT_KEY_UP,GLUT_KEY_RIGHT,GLUT_KEY_DOWN,GLUT_KEY_PAGE_UP,GLUT_KEY_PAGE_DOW N,GLUT_KEY_HOME,GLUT_KEY_END,GLUT_KEY_INSERT。
头歌数据库数学函数
头歌数据库数学函数主要包括以下几种:
1. ABS函数:计算参数的绝对值。
2. ACOS函数:返回参数的反余弦值,即弧度制的余弦值的反正弦值。
3. ASIN函数:返回参数的反正弦值,即弧度制的正弦值的反正弦值。
4. ATAN函数:返回参数的反正切值,即弧度制的正切值的反正切值。
5. COS函数:返回参数的余弦值,即弧度制的余弦值。
6. COSH函数:返回参数的双曲余弦值。
7. COT函数:返回参数的余切值,即弧度制的余切值。
8. EXP函数:返回以自然常数e为底的指数值。
9. FLOOR函数:向下取整,即取不大于参数值的最大整数。
10. FLOOR函数:返回参数的小于或等于参数值的最大整数。
11. LOG函数:返回以自然对数为底的参数的对数。
12. LOG10函数:返回以10为底的参数的对数。
13. LOWER函数:将字符串中的大写字母转换为小写字母。
14. MID函数:返回字符串中指定位置的字符。
15. SIGN函数:返回参数的符号,正数为1,负数为-1,0为0。
16. SIN函数:返回参数的正弦值,即弧度制的正弦值。
17. SINH函数:返回参数的双曲正弦值。
18. SQRT函数:返回参数的平方根。
19. TAN函数:返回参数的正切值,即弧度制的正切值。
20. TANH函数:返回参数的双曲正切值。
以上是头歌数据库数学函数的主要介绍,这些函数可以帮助我们
在数据分析和处理中快速地进行数学运算。
GLUT教程
这个函数是 glutReshapeFunc()。 void glutReshapeFunc(void(*func)(int width,int height));
参数: func: 指负责设置正确投影的函数的名称。
因 此 我 们 必 须 做 的 第 一 件 事 是 回 到 main ( ) 函 数 。 在 上 一 章 的 代 码 里 加 入 对 glutReshapeFunc()的调用,让我们把负责窗口尺寸的函数叫做 changeSize。现在的代码如下。 void main(int argc, char **argv) {
假定你想要一个有单缓冲区,深度缓冲区的 RGB 窗口,你用“或“(|)操作符来建立你想要 的显示模式。
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT_DEPTH); 经过上面的这些步骤后,就可以调用函数 glutCreateWindow()来创建窗口了。
Int glutCreateWindow(char* title); 参数: Title:设置窗口的标题。 glutCreateWindow()的返回值是一个窗口标识符。后面你可以在 GLUT 里使用这个标 识符,不过这个超出了本小节的范围。
现在就有一些代码来完成所有的初始化操作。 #include<gl/glut.h> void main(int argc,char**argv) {
glutInit(&argc,argv); glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(320,320); glutCreateWindow(“GLUT Tutorial”); } 如果你运行上述代码,你将会得到一个空的黑的控制台窗口,而没有 OpenGL 窗口。并 且控制台窗口将很快消失。 在我们渲染一些东西前,还有两件事需要处理。第一告诉 GLUT 哪个函数负责渲染。 我们创建一个简单的渲染的函数。下面的这个函数将会清除颜色缓冲区并画一个三角形。 void renderScene(void) {
GLUT函数库
GLUT 工具箱函数GLUT工具箱提供几种图形3维图形的函数:void glutWireSphere(GLdouble radius,GLint slices, GLint stacks); 丝状球void glutSolidSphere(GLdouble radius,GLint slices, GLint stacks); 实心球void glutWireCube(GLdouble size); 丝状立方体void glutSolidCube(GLdouble size); 实心立方体void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius,GLint nsides,GLint rings); 丝状花环void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius,GLint nsides,GLint rings); 实心花环void glutWireIcosahedron(void); 丝状20面体void glutSolidIcosahedron(void); 实心20面体void glutWireOctahedron(void); 丝状8面体void glutSolidOctahedron(void); 实心8面体void glutWireTetrahedron(void); 丝状4面体void glutSolidTetrahedron(void); 实心4面体void glutWireDodecahedron(GLdouble radius); 丝状12面体void glutSolidDodecahedron(GLdouble radius); 实心12面体void glutWireCone(GLdouble radius, GLdouble height,GLint slices,GLint stacks); 丝状圆锥体void glutSolidCone(GLdouble radius, GLdouble height,GLint slices,GLint stacks); 实心圆锥体void glutWireTeapot(GLdouble size); 丝状茶壶void glutSolidTeapot(GLdouble size); 实心茶壶如果需要用到长方体那就用glScalef(x,y,z); 做自己想要的长方体,这儿的x,y,z 分别对应x,y,z轴的缩放比例不过居然没有看到圆柱体的函数。
实体模型函数
绘制实体或线框茶壶
void glutSolidTeapot/glutWireTeapot (GLdouble size);
3
OpenGL中的实体模型函数
GLU二次曲面函数
定义一个二次曲面
GLUquadricObj *sphere;
激活二次曲面绘制器
sphere = gluNewQuadric( );
slices, stacks);
5
指定二次曲面的绘制方式
gluQuadricDrawStyle(sphere, GLU_LINE);
4
OpenGL中的实体模型函数
绘制二次曲面
gluSphere(sphere, radius, slices, stacks); gluCylinder(sphere,baseRadius,topRadius, height, slices, stacks); gluDisk(sphere,innerRadius,outerRadius,
slices, GLint stacks);
2
OpenGL中的实体模型函数
绘制实体或线框圆环
void glutSolidTorus/ glutWireTorus(GLdouble
innerRadius, GLdouble outerRadius, GLint
slices,GLint stacks);
OpenGL中的实体模型函数
GLUT库中的多面体函数
表4.1 GLUT生成规则多面体的函数
函数 glutSolidTetrahedron( ) glutWireTetrahedron( ) glutSolidCube(size) glutWireCube(size) glutSolidOctahedron ( ) glutWireOctahedron ( ) glutSolidDodecahedron( ) glutWireDodecahedron( ) glutSolidIcosahedron( ) glutWireIcosahedron( ) 说明 绘制中心位于世界坐标系原点的实心四面体和线框四面体,四面体的半 径为 3。 绘制中心位于世界坐标系原点的实心立方体和线框立方体,立方体的半 径为size,size是一个双精度浮点值。 绘制中心位于世界坐标系原点的实心八面体和线框八面体,八面体的半 径为1.0。 绘制中心位于世界坐标系原点的实心12面体和线框12面体,12面体的半 径为 3。 绘制中心位于世界坐标系原点的实心20面体和线框20面体,20面体的半 径为1.0。1Βιβλιοθήκη OpenGL中的实体模型函数
glut绘图函数
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 线框圆环 void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 实心圆环
void glutWireTeapot(GLdouble size); 线 框 茶 壶 void glutSolidTeapot(GLdouble size); 实 心 茶 壶
void glutWireIcosahedron(void); 线 框 20面 体 void lutSolidIcosahedron(void); 实 心 20面 体
void glutWireOctahedron(void); 线 框 8面 体 void glutSolidOctahedron(void); 实 心 8面 体
void glutWireTetrahedron(void); 线 框 4面 体 void glutSolidTetrahedron(void); 实 心 4面 体
void glutWireDodecahedron(GLdouble radius); 线 框 12面 体 void glutSolidDodecahedron(GLdouble radius); 实 心 12面 体
void glutWireCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); 线 框 圆 锥 体 void glutSolidCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); 实 心 圆 锥 体
OpenGL 中 GLUT 消息事件处理函数
OpenGL 中GLUT 消息事件处理函数GLUT是一套OpenGL 的辅助函数库,他使我们能十分简单的设置各种消息处理函数,而且与平台无关,也就是说如果使用glut 在windows 下编译通过的程序无需更改便可在Linux, 和Mac OS 下的编译运行,这一点是十分有用的,要知道Win32 API 繁琐的代码走出了Windows 的窗户可什么也干不了。
给GLUT 作了这么多广告,让我们看看他是怎么用的。
GLUT的基本功能包括窗口初始化功能、事件处理、窗口和菜单管理、回调函数注册和几何建模功能。
窗口初始化功能,它有4个函数。
主要用于处理初始化并以及命令行参数,初始化显示模式,指定窗口左上角在屏幕上的位置和窗口大小,以像素为单位。
事件处理只有一个函数,它用于显示创建的窗口、处理输入的事件、触发回调函数、进入循环直到程序退出。
窗口管理包含18个函数,用于建立、销毁窗口及可能的子窗口,管理和设置窗口的属性。
在GLUT中有20个回调函数,用于响应用户事件。
最重要的回调函数是glutDisplayFunc,当GLUT认为需要重新显示窗口内容时,都将执行这一函数注册的回调函数。
另外一些重要的回调函数注册函数有:函数glutRe-shapeFunc用于注册窗口大小改变这一事件发生时GLUT将调用的函数。
glutKeyboardFunc和glutMouseFunc用于注册键盘和鼠标事件发生时的回调函数。
函数glutMotionFunc 注册鼠标移动事件的回调函数。
这3个函数用于人机交互处理。
在没有其他事件处理时,GLUT将调用函数glutldleFunc注册的函数,而函数glutTimerFunc则注册处理定时器事件的函数。
penGL绘图函数只能生成点、直线、多边形等简单的几何图元,GLUT提供了18个创建三维物体的函数。
利用它们可以创建9种三维物体,如圆锥体、立方体、球体等,每一物体有线框和实体2种方式。
glutinit函数
glutinit函数
glutInit函数是GLUT库的一个函数,用于初始化GLUT库并为其提供命令行参数。
它有两种用法:
1. **void glutInit(int *argcp, char **argv)**:使用命令行参数来初始化GLUT库。
参数argcp是一个指向参数计数器的指针,argv是指向参数字符串数组的指针。
2. **void glutInitDisplayMode(unsigned int mode)**:设置GLUT库是在何种条件下运行的的模式。
参数mode可以是以下几个常量的组合:
- GLUT_RGB:使用RGB颜色模式 - GLUT_RGBA:使用RGBA颜色模式 - GLUT_DOUBLE:双缓存模式 -
GLUT_SINGLE:单缓存模式 - GLUT_DEPTH:深度缓存模式- GLUT_STENCIL:模板缓存模式
在使用GLUT库前,必须首先调用glutInit函数进行初始化。
在调用其他GLUT函数之前必须初始化GLUT库。
glut函数解析1
glut函数解析1glut函数解析1:显示模式:glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//创建窗口时使用单缓冲,并且使用RGB颜色模型。
和GLUT_SINGLE对应的有GLUT_DOUBLE双缓冲,主要用于动画。
2:创建OpenGL窗口:glutCreateWindow("窗口名");3:回调函数:glutDisplayFunc(RenderScene);glutReshapeFunc(ChangeSize);分别用于指定当前窗口的显示回调函数和再整型回调函数,回调函数是为了响应某种事件而响应的函数,是由程序员编写的。
需要绘制窗口就要调用glutDisplayFunc();而当窗口发生变化时就调用glutReshapeFunc();4;执行函数:glutMainLoop();//这个函数让GLUT框架开始运行,所有设置的回调函数开始运行,直到用户程序终止。
5:OpenGL初始化:SetupRC(){}6:glClearColor(1.0f,1.0f,1.0f,1.0f);//设置清除窗口时使用的颜色,即设定窗口内的背景色。
7:定义视区:void glViewport(GLint x,GLint y,GLsizei width,GLsizei height);//在这里x和y参数指定窗口的左下角,width和height参数以像素为单位指定宽度和高度。
通常情况下x和y都是0,但是可以用视区来渲染窗口不同区域中的多幅图形。
8:利用函数glOrtho定义修剪区;void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);//函数在3D 坐标系中定义了一个修剪空间,left和right指定X轴上显示的最小和最大坐标;bottom和top用于Y轴;near和far参数用于Z轴,通常是远离观察者的负值。
google表格最常用的八个函数
在日常工作和学习中,我们经常会用到Google表格进行数据处理和分析。
Google表格是一款功能强大的电子表格软件,提供了丰富的函数库,帮助用户快速处理数据。
在众多的函数中,有一些函数尤其常用,下面就来介绍一下Google表格中最常用的八个函数。
一、SUM函数SUM函数是Google表格中最常用的函数之一,用于计算指定单元格范围内的数值之和。
若要计算A1到A10单元格范围内的数值之和,可以使用以下公式:=SUM(A1:A10)。
二、AVERAGE函数AVERAGE函数用于计算指定单元格范围内的数值的平均值。
若要计算A1到A10单元格范围内的数值的平均值,可以使用以下公式:=AVERAGE(A1:A10)。
三、MAX函数和MIN函数MAX函数和MIN函数分别用于计算指定单元格范围内的最大值和最小值。
若要计算A1到A10单元格范围内的数值的最大值,可以使用以下公式:=MAX(A1:A10);若要计算A1到A10单元格范围内的数值的最小值,可以使用以下公式:=MIN(A1:A10)。
四、COUNT函数COUNT函数用于计算指定单元格范围内的非空单元格的个数。
若要计算A1到A10单元格范围内的非空单元格的个数,可以使用以下公式:=COUNT(A1:A10)。
五、IF函数IF函数是一种条件函数,用于根据指定条件返回不同的值。
若要判断A1单元格的数值是否大于100,如果是则返回“合格”,如果不是则返回“不合格”,可以使用以下公式:=IF(A1>100, "合格", "不合格")。
六、VLOOKUP函数VLOOKUP函数用于在指定范围内查找符合条件的数值,并返回对应的数值。
若要在A1到B10范围内查找A1单元格的数值,并返回对应的B列的数值,可以使用以下公式:=VLOOKUP(A1, A1:B10, 2, FALSE)。
七、CONCATENATE函数CONCATENATE函数用于将多个单元格的数值合并为一个字符串。
OpenGL中常用的GLUT函数库讲解
OpenGL 中常用的GLUT 函数库GLUT函数说明一、初始化void glutInit(int* argc,char** argv)这个函数用来初始化GLUT库。
对应main 函数的形式应是:int main(int argc,char* argv[]);这个函数从main 函数获取其两个参数。
1void glutInitWindowSize(int width,int height);2voidglutInitWindowPosition(int x,int y);设置glut程序要产生的窗口的大小和位置(左上角)。
以像素为单位。
void glutInitDisplayMode(unsigned int mode);设置图形显示模式。
参数mode的可选值为:∙GLUT_RGBA:当未指明GLUT-RGBA或GLUT-INDEX时,是默认使用的模式。
表明欲建立RGBA模式的窗口。
∙GLUT_RGB:与GLUT-RGBA作用相同。
∙GLUT_INDEX:指明为颜色索引模式。
∙GLUT_SINGLE:只使用单缓存∙GLUT_DOUBLE:使用双缓存。
以避免把计算机作图的过程都表现出来,或者为了平滑地实现动画。
∙GLUT_ACCUM:让窗口使用累加的缓存。
∙GLUT_ALPHA:让颜色缓冲区使用alpha组件。
∙GLUT_DEPTH:使用深度缓存。
∙GLUT_STENCIL:使用模板缓存。
∙GLUT_MULTISAMPLE:让窗口支持多例程。
∙GLUT_STEREO:使窗口支持立体。
GLUT_LUMINACE: luminance是亮度的意思。
但是很遗憾,在多数Ope nGL平台上,不被支持。
二、事件处理(Event Processing)void glutMainLoop(void)让glut 程序进入事件循环。
在一个glut程序中最多只能调用一次。
一旦调用,会直到程序结束才返回。
三、窗口管理(Window Management)int glutCreateWindow(char* name);产生一个顶层的窗口。
OpenGL GLUT库函数汇总
OpenGL 库函数汇总-3.GLUT 库函数3.GLUT 库函数初始化和启动事件处理-------------------------glutInitglutInitWindowPosition glutInitWindowSizeglutInitDisplayModeglutMainLoop窗口管理-------------------------glutCreateWindowglutCreateSubWindowglutHideWindowglutShowWindowglutSetWindowTitleglutPostRedisplayglutSwapBuffersglutFullScreenglutPositionWindowglutReshapeWindowglutSetWindowglutGetWindowglutPopWindowglutPushWindowglutDestroyWindowglutIconifyWindowglutSetCursor重叠层管理-------------------------glutEstablishOverlay glutUseLayer glutRemoveOverlay glutPostOverlayRedisplay glutShowOverlay glutHideOverlay菜单管理-------------------------glutCreateMenu glutAddMenuEntry glutAddSubMenu glutAttachMenu glutGetMenu glutSetMenu glutDestroyMenu glutChangeToMenuEntry glutChangeToSubMenu glutRemoveMenuItem glutDetachMenu注册回调函数-------------------------------glutDisplayFunc glutReshapeFunc glutMouseFunc glutMotionFunc glutIdleFunc glutVisibilityFunc glutKeyboardFunc glutSpecialFunc glutOverlayDisplayFunc glutPassiveMotionFunc glutEntryFunc glutSpaceballMotionFunc glutSpaceballRotateFunc glutSpaceballButtonFunc glutButtonBoxFunc glutDialsFunc glutTableMotionFunc glutTableButtonFunc glutMenuStatusFunc glutTimerFunc颜色索引映射表管理-------------------------------glutSetColor glutGetColor glutCopyColormap状态检索-------------------------------glutGetglutLayerGetglutDeviceGetglutGetModifiersglutExtensionSupported字体绘制-------------------------------glutBitmapCharacterglutBitmapWidthglutStrokeCharacterglutStrokeWidth几何图形绘制-------------------------------glutSolidSphere , glutWireSphere glutSolidCube , glutWireCubeglutSolidCone , glutWireConeglutSolidTorus , glutWireTorus glutSolidDodecahedron , glutWireDodecahedron glutSolidOctahedron , glutWireOctahedronglutSolidTetrahedron , glutWireTetrahedronglutSolieIcosahedron , glutWireIcosahedronglutSolidTeapot , glutWireTeapotvoid glutWireSphere(GLdouble radius, GLint slices, GLint stacks);绘制线框球体void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);绘制实心球体参数:radius:球体的半径slices:球体围绕z轴分割的数目stacks:球体沿着z轴分割的数目绘制中心在模型坐标原点,半径为radius的球体,球体围绕z轴分割slices次,球体沿着z轴分割stacks次//*******************************************************************************************void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);绘制线框圆锥体void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);绘制实心圆锥体参数:radius:圆锥体的半径height:圆锥体的高slices:圆锥体围绕z轴分割的数目stacks:圆锥体沿着z轴分割的数目圆锥体的轴为z轴方向,它的基底位于z=0的平面内,顶点z=height,圆锥体围绕z轴分割slices个数目,沿着z轴分割stacks个数目.//*******************************************************************************************void glutWireCube(GLdouble size);绘制线框立方体void glutSolidCube(GLdouble size);绘制实心立方体参数:size:立方体的边长//*******************************************************************************************void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); 绘制线框圆环void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); 绘制实心圆环参数:innerRadius:圆环的内半径outerRadius:圆环的外半径nsides:圆环腔的分割数rings:圆环的环线数//*******************************************************************************************void glutWireDodecahedron(void);绘制线框十二面体void glutSolidDodecahedron(void);绘制实心十二面体//******************************************************************************************* void glutWireTeapot(GLdouble size);绘制线框茶壶void glutSolidTeapot(GLdouble size);绘制实心茶壶参数:size:茶壶的相对大小//******************************************************************************************* void glutWireOctahedron(void);绘制线框八面体void glutSolidOctahedron(void);绘制实心八面体//******************************************************************************************* void glutWireTetrahedron(void);绘制线框四面体void glutSolidTetrahedron(void);绘制实心四面体//******************************************************************************************* void glutWireIcosahedron(void);绘制线框二十面体void glutSolidIcosahedron(void);绘制实心二十面体。
geogebra 函数中英文对照
geogebra 函数中英文对照Geogebra是一款优秀的数学工具软件,其中有各种函数,包括常见的函数和特殊的函数。
为了让大家更好地理解和使用这些函数,接下来将为大家介绍Geogebra函数的中英文对照。
一、常见函数1.一次函数(Linear):y=kx+b(其中k为斜率,b为截距)2.二次函数(Quadratic):y=ax²+bx+c(其中a为二次项系数,b为一次项系数,c为常数项)3.立方函数(Cubic):y=ax³+bx²+cx+d(其中a为立方项系数,b为二次项系数,c为一次项系数,d为常数项)4.指数函数(Exponential):y=a^x(其中a为底数)5.对数函数(Logarithmic):y=loga(x)(其中a为底数)二、三角函数1.正弦函数(Sine):y=sin(x)2.余弦函数(Cosine):y=cos(x)3.正切函数(Tangent):y=tan(x)4.余切函数(Cotangent):y=cot(x)5.正割函数(Secant):y=sec(x)6.余割函数(Cosecant):y=csc(x)三、双曲函数1.双曲正弦函数(Sinh):y=sinh(x)2.双曲余弦函数(Cosh):y=cosh(x)3.双曲正切函数(Tanh):y=tanh(x)4.双曲余切函数(Coth):y=coth(x)5.双曲正割函数(Sech):y=sech(x)6.双曲余割函数(Csch):y=csch(x)四、其他特殊函数1.阶梯函数(Step):y=[x](其中[x]表示x的整数部分)2.符号函数(Sign):y=sgn(x)(其中sgn(x)表示x的符号)3.逆函数(Inverse):y=f^(-1)(x)(其中f^(-1)(x)表示f(x)的反函数)以上是Geogebra函数的部分中英文对照,可以帮助大家更快、更准确地选择和使用各种函数。
GLUT3D函数
Open Gl函数速查(转载)哈佛大学图书馆凌晨4点的景象Open gl常用函数(转)2011-01-13 16:39:11| 分类:默认分类|字号订阅一:GL库函数使用颜色g lshad eMode l--选择平面明暗模式或光滑明暗模式g lColo r--设置当前颜色glCol orPoi nter--定义颜色数组gl lndex--设置当前颜色索引glln dexPo inter--定义颜色索引数组glCO forTa bleEX T--为目标调色板纹理指定调色板的格式和大小gl Color subTa bleEX T--指定需要替代的目标纹理调色板的一部分绘制几何图原及物体glV ertex--指定顶点glV ertex Point er--定义顶点数据数组gl Array Eleme nt--指定用来绘制顶点的数组元素gl Begin,glEn d--限定一个或多个图原顶点的绘制gl EdgeF lag,g lEdge Flagy--指定边界标记g lPoin tsize--指定光栅化点的直径glL inewi dth--指定光栅化直线的宽度glLi nesti pple--指定点划线glP olygo nMode--选择多边形光栅化模式gl Front Face--定义正面多边形和反反面多边形glPo lygon stipp le--设置多边形点划图gl DrawE lemen ts--从数组数据绘制图原g lRect--绘制矩形坐标转换glT ransl ate--用平移矩阵乘以当前矩阵glR otate--用旋转矩阵乘以当前矩阵g lscal e--用缩放矩阵乘以当前矩阵glVie wport--设置机口glF rustu m--用透视矩阵乘以当前矩阵glort hO--用正视矩阵乘以当前矩阵glCl ipPla ne--指定切割几何物体的平面堆栈操作glLo adMat rix--用任意矩阵替换当前矩阵glM ultMa trix--用任意矩阵乘以当前矩阵gl Matri xMode--指定哪一个矩阵是当前矩阵glPus hMatr ix,gl PopMa trix--压人和弹出当前矩阵堆栈gl PushA ttrib,glPo pAttr ib--压人和弹出属性堆栈g lPush Clien tAttr ib,gl PopCl ientA ttrib--在客户属性堆栈中保存和恢复客户状态变量组gl PushN ame,g PopNa me--压人和弹出名称堆栈g llnit Names--初始名称堆栈g lLoad Name--向名称堆栈中装载名称显示列表glN ewLis t,glE ndLis t--创建或替换一个显示列表glCal lLISt--执行一个显示列表glCa llLIS ts--执行一列显示列表gl GenLi sts--生成一组空的相邻的显示列表g lDele teLis ts--删除一组相邻的显示列表gllS LISt--检验显示列表的存在使用光照和材质g lNorm al--设置当前的法向量gl Norma lPoin ter--定义法向量数组gl Light--设置光源参数g lLigh tMode l--设置光照模型参数glM ateri al--为光照模型指定材质参数glCo lorMa teria--使材质颜色跟踪当前颜色像素操作g lRast erPos--为像素操作指定光栅位置g lBitm ap--绘制位图g lRead Pixel s--从帧缓存中读取一块像素glDra wPixe ls--将一个像素块写人帧缓存glCo pyPix els--在帧缓存中拷贝像素glCop yTexl mage1D--将像素从帧缓存拷贝到一维纹理图像中glCo pyTex lmage ZD--把像素从帧缓存拷贝到二维纹理图像中glC opyTe xsubl magel D--从帧缓存中拷贝一维纹理图像的子图像glCo pyTex sublm ageZD--从帧缓存中拷贝二维纹理图像的子图像glPix elZoo m--指定像素缩放因子glP ixels tore--设置像素存储模式glPix elTra nsfer--设置像素传输模式glPi xelMa p--设置像素传输映射表纹理映射gl Texlm agelD--指定一维纹理图像glTe xlmag eZD--指定二维纹理映射g lTexP arame ter--设置纹理参数glT exsub lmage1D--指定已存在的一维纹理图像的一部分glTe xsubl mageZ D--指定已存在的二维纹理图像的一部分glTex Env--设置纹理环境参数g lTexC oord--设置当前纹理坐标glTex Gen--控制纹理坐标的生成glTex Coord Point er--定义纹理坐标数组gl Delet eText ures--删除命名的纹理特殊效果操作glBl endFu nc--指定像素的数学算法g lHint--指定由实现确定的控制行为glFOg--指定雾化参数帧缓存操作glCle ar--将缓存清除为预先的设置值glC learA ccum--设置累加缓存的清除值glC learC olor--设置颜色缓存的清除值glC learD epth--设置深度缓存的清除值glC learl ndex--设置颜色索引缓存的清除值g lClea rsten cil--设置模板缓存的清除值glDr awBuf fer--指定绘制的颜色缓存gllnd exMas k--控制颜色索引缓存中单个位的写操作glCol orMas k--激活或关闭帧缓存颜色分量的写操作glDep thMas k--激活或关闭对深度缓存的写操作gl stenc ilMas k--控制模板平面中单个位的写操作gl Alpha Func-一指定al pha检验函数gl stenc ilFun c--设置模板检验函数和参考值glst encil op--设置模板检验操作gl Depth Func--指定深度比较中使用的数值g lDept hRang e--指定从单位化的设备坐标到窗口坐标的z值映射glLOg iCOp--为颜色索引绘制指定逻辑像素操作glA CCum--对累加缓存进行操作绘制曲线和曲面g lEval Coord--求取激活的一维和二维纹理图glMa pl--定义一维求值器glM apZ--定义二维求值器gl MapGr id--定义一维或二维网格g lEval Mesh--计算一维或二维点网格或线网格glEv alPoi nt--生成并求取网格中的单个点查询函数glG et--返回所选择的参数值g lGetC lipPl ane--返回指定的切平面系数glGe tColo rTabl eEXT--获得当前目标纹理调色板的颜色表数据g lGetC olorT ableP arame terfv EXT,g lGetC olorT ableP arame terlv EXT-从颜色表中获得调色板参数glG etErr or--返回错误信息glGe tLigh t--返回光源参数值glGe tMap--返回求值器参数g lGetM ateri al--返回材质参数glGe tPixe lMap--返回指定的像素映像glGe tPoin tery--返回顶点数据数组地JglG etPol ygons tippl e--返回多边形点戈glGe tstri ng--返回描述当前OpenG LglG etTex Env--返回纹理环境参数g lGetT exGen--返回纹理坐标生成参数gl GetTe xlmag e--返回纹理图像glGet TexLe velPa ramet er--返回指定细节水平的纹理参数值g lGetT exPar amete r--返回纹理参数值二:GLU库函数绘制NURBS曲线和曲面gluN ewNur bsRen derer--创建一个NURB S对像g luNur bsPro perty--设置N URBS属性glu Nurbs Callb ack--为NURB S对像定义回调函数gluBe ginCu rve,g luEnd Curve--限定N URBS曲线的定义gluNu rbsCu rve--定义NUR BS曲线的形状gl uDele teNur bsRen derer--删除N URBS对像glu Begln surfa ce,gl uEnds urfac e--限定NURBS曲面的定义ghiN urbss urfac e--定义NURBS曲面的形状gluB eginT rim,g luEnd Trim--限定NU RBS裁剪环的定义gluPw lCurv e--描述分段线性N URBS裁剪曲线g fuBeg lnPol ygon, gluE ndPol ygon--限定多边形的定义gluPi ckMat rix--定义拾取区域绘制二次几何物体gluN ewQua dric--创建一个二次对象gluQu adric Draws ope--指定二次对象的绘制方式glu Quadr icNor mals--指定二次对象使用的法向量类型gluQ uadri corie ntati on--指定二次对象的内侧面或外侧面方向gluC ylind er--绘制圆柱体ghisp here--绘制球体glll DISk--绘制圆盘gluP artia lDisk--绘制部分圆盘g liJDe leteQ uadri c--删除二次对象gluQu adric Textu re--指定是否为二次对象使用纹理gh iQuad ricCa llbac k--为二次对象定义回调网格化glu NewTe ss--创建一个网格化对象g luTes sVert ex--在多边形上指定顶点g luTes sCall back--为网格化对象定义回调glu TessB eglnP olygo n,ghi TessE ndPol ygon--限定多边形的描述gluTe ssBeg lnCon tour,gluTe ssEnd Conto ur--限定多边形轮廓线的定义gluT essPr opert y--设置网格化对象的属性g hiNex tCont our--标记开始绘制另一个轮廓线gl uTess Norma l--为多边形指定法向量gl uDele teTes s--删除网格化对象坐标变换gluO ortho ZD--定义二维正视投影矩阵gluPe rspec tive--创建透视投影矩阵gltlL OOkAt--定义视景转换g luPro ject--将物体坐标映射为窗口坐标g luInP rojec t--将窗口坐标映射力物体坐标多重映射gfuB uildl DMipm aps--创建一维多重映射g luBui ldZDM ipmap s--创建H维多重映射glu SCale lmage--将图像缩放到任意尺寸查询函数gh iErro rstri ng--从OpenG L或GLU错误代码中生成错误字符串gl uGetN urbsP roper ty--获得NURB S属性g hiGet strin g--获得描述GLU版本号或支持GLU扩展调用的字符串gh iGetT essPr opert y--获得网格化对象的属性三:GL UT库函数初始化和启动事件处理gh jtlni t--初始化GLUT库glu tlnit windo wPosi tion--设置初始窗口位置glutl nitwi ndows ize--设置初始窗口大小g lutln itDis playM ode--设置初始显示模式g lutMa inLoo p--进人GLUT事件处理循环窗口管理glut Creat ewind ow--创建顶层窗口glut Creat esubw indow--创建子窗口gh itHid ewind ow--隐藏当前窗口的显示状态glut showw indow--改变当前窗口的显示状态,使其显示g futse twind owTit le--设置当前顶层窗口的窗口标题ghitP ostRe displ ay--标记当前窗口需要重新绘制glu tswap Buffe rs--交换当前窗口的缓存g lutFu llscr een--关闭全屏显示glu tPosi tionw indow--申请改变当前窗口的位置g intRe shape windo w--申请改变当前窗口的大小gluts etwin dow--设置当前窗口ghi tGetw indow--获得当前窗口的标识符gl utPop windo w--改变当前窗口的位置,使其前移gh itPts hwill dOO--改变当前窗口的位置,使其后移glutD estro ywind ow--销毁指定的窗口glu tlcon ifywi ndow--使当前窗口图标化显示glu tsetC ursor--设置当前窗口的鼠标形状重叠层管理glutE stabl ishov erlay--创建当前窗口的重叠层gl utUse Layer--改变当前窗口的使用层gl utRem oveov erlay--删除当前窗口的重叠层gl utPos tover layRe displ ay--标记当前窗口的重叠层需要重新绘制glu tshow overl ay--显示当前窗口的重叠层glutH ideov erlay--显示当前窗口的重叠层菜单管理gl utCre ateMe nu--创建一个新的弹出式菜单glut AddMe nuEnt ry--在当前菜单的底部增加一个菜单条目glut Addsu bMenu--在当前菜单的底部增加一个子菜单触发条目glu tAtta chMen u--把当前窗口的一个鼠标按键与当前菜单的标识符联系起来g lutGe tMenu--获取当前菜单的标识符gl utset Menu--设置当前菜单gl utDes troyM enu--删除指定的菜单gl utCha ngeTo MenuE ntry--将指定的当前菜单中的菜单项更改为菜单条目glu tChan geTos ubMen u--将指定的当前菜单中的菜单项更改为子菜单触发条目glu tRemo veMen ultem--删除指定的菜单项glut Detac hMenu--释放当前窗口的一个鼠标按键注册国调函数gl utDis pfayF unc--注册当前窗口的显示回调函数g lutRe shape Func--注册当前窗口的形状变化回调函数glu tMous eFunc--注册当前窗口的鼠标回调函数glut Motio nFunc--设置移动回调函数glut ldleF unc--设置全局的空闲回调函数glu tVisi bilit yFunc--设置当前窗口的可视回调函数glut Keybo ardFu nc--注册当前窗口的键盘回调函数gluto verla yDisp layFu nc--注册当前窗口的重叠层显示回调函数glut Passi veMot ionFu nc--设置当前窗口的被动移动回调函数glutE ntryF unc--设置当前窗口的鼠标进出回调函数glut space ballM otion Func--设置当前窗口的空间球移动回调函数gl utspa cebal lRota teFun c--设置当前窗口的空间球旋转回调函数gluts paceb allBu ttonF unc--设置当前窗口的空间球按键回调函数glu tButt onBox Func--设置当前窗口的拨号按键盒按键回调函数glutD ialsF unc--设置当前窗口的拨号按键盒拨号回调函数g lutTa bletM otion Func--设置图形板移动回调函数gl utTab letBu ttonF unc--设置当前窗口的图形板按键回调函数glu tMenu statu sFunc--设置全局的菜单状态回调函数glut Timer Func--注册按一定时间间隔触发的定时器回调函数颜色素引映射表管理glut setCo lor--设置当前窗口当前层一个颜色表单元的颜色glutG etCol or--获得指定的索引颜色g lutCo pyCol ormap--将逻辑颜色表从指定的窗口拷贝到当前窗口状态检索glu tGet--检索指定的GLUT状态gl utLay erGet--检索属于当前窗口重叠层的 GLUT状态g lutDe viceG et--检索GLUT设备信息glutG etMod ifier s--返回修饰键在引起某些回调的事件发生时的状态glutE xtens ionsu pport ed--判别当前Op enGL版本是否支持给定的Op enGL扩展字体绘制glu tBltm apCha rcter--绘制一个位图字符glut Bitma pwidt h--返回一个位图字符的宽度gluts troke Charc ter--绘制一个笔画字符g lutst rokew idth--返回一个笔画字体的宽度几何图形绘制glutS olids phere,glut wires phere--绘制实心球体和线框球体g lutso lidCu be,gl utwir eCube--绘制实心立方体和线框立方体glut solid Cone,glutw ireCo ne--绘制实心圆锥体和线框圆锥体gl utsol idTor us,gl utwir eToru s--绘制实心圆环和线框圆环glutS olidD OdeCa hedro ll,gl Lltwi FeDOd eched fotl--绘制实心十二面体和线框十二面体gl utSol idOct ahedr on,gl utWir eOcta hedro n--绘制买心八面体和线框八面体glu tsoll dTetr ahedr on,gl utwir eTetr ahedr on--绘制实心四面体和线框四面体gl utSol lelco sahed ron,g lutwi relco sahed ron--绘制实心二十面体和线框二十面体glut solid Teapo t,glu twire Teapo t--绘制实心茶壶和线框茶壶。
opengl核心库glut常用函数
opengl核心库glut常用函数opengl 核心库glut常用函数2010-10-12 12:01:27| 分类:opengl|举报|字号订阅glut库下的主要函数一、初始化1、void glutInit(int* argc,char** argv)这个函数用来初始化GLUT库。
对应main函数的形式应是:int main(int argc,char* argv[]);这个函数从main函数获取其两个参数。
2、void glutInitWindowSize(int width,int height);void glutInitWindowPosition(int x,int y);这两个函数很好理解是设置glut程序要产生的窗口的大小和位置(左上角)。
以像素为单位。
3、void glutInitDisplayMode(unsigned int mode);设置图形显示模式。
参数mode的可选值为:GLUT_RGBA:当未指明GLUT—RGBA或GLUT—INDEX时,是默认使用的模式。
表明欲建立RGBA模式的窗口。
GLUT_RGB:与GLUT—RGBA作用相同。
GLUT_INDEX:指明为颜色索引模式。
GLUT_SINGLE:只使用单缓存GLUT_DOUBLE:使用双缓存。
以避免把计算机作图的过程都表现出来,或者为了平滑地实现动画。
GLUT_ACCUM:让窗口使用累加的缓存。
GLUT_ALPHA:让颜色缓冲区使用alpha组件。
GLUT_DEPTH:使用深度缓存。
GLUT_STENCIL:使用模板缓存。
GLUT_MULTISAMPLE:让窗口支持多例程。
GLUT_STEREO:使窗口支持立体。
GLUT_LUMINACE:luminance是亮度的意思。
但是很遗憾,在多数OpenGL 平台上,不被支持。
--------------------------------------------------------------------------------二、事件处理(Event Processing)1、void glutMainLoop(void)让glut程序进入事件循环。
OpenGL编程 GLUT
第一章OpenGL的基本框架1.1OpenGL简介在计算机发展初期,人们就开始从事计算机图形的开发,但直到20世纪80年代末90年代初,三维图形才开始迅速发展。
于是各种三维图形工具软件包相继推出,如GL,RenderMan等,但没有一种软件包能够在三维图形建模能力和编程方便程度上与OpenGL 相比拟。
OpenGL(Open Graphics Library,开放图形库),是一个三维的计算机图形和模型库,它源于SGI公司为其图形工作站开发的IRIS GL,在跨平台移植过程中发展成为OpenGL。
SGI公司在1992年6月发布1.0版,后成为工业标准。
目前,OpenGL标准由1992年成立的独立财团OpenGL Architecture Review Board(ARB)以投票方式产生,并制成规范文档公布,各软硬件厂商据此开发自己系统上的实现。
目前最新版规范是1999年5月通过的1.2.1。
OpenGL作为一个性能优越的图形应用程序设计界面(API),它独立于硬件和窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。
OpenGL在军事、广播电视、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟世界等领域都有着广泛的应用。
它具有以下功能。
1. 模型绘制OpenGL能够绘制点、线和多边形。
应用这些基本的形体,可以构造出几乎所有的三维模型。
OpenGL通常用模型的多边形的顶点来描述三维模型。
2. 模型观察在建立了三维景物模型后,就需要用OpenGL描述如何观察所建立的三维模型。
观察三维模型是通过一系列的坐标变换进行的。
模型的坐标变换在使观察者能够在视点位置观察与视点相适应的三维模型景观。
在整个三维模型的观察过程中,投影变换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。
最后的视窗变换则对模型的景象进行裁剪缩放,即决定整个三维模型在屏幕上的图象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GLUT常用函数介绍
stephenxjc_千年一笑
2010-7-29
对象:GLUT的入门级(初学者)
关键字:GLUT、函数
核心内容:主要是通过在一个具体的程序中函数的作用
平台:visual studio2008,需要配置好OpenGL32.lib、GLu32.lib、GlAux.Lib、glut32.lib和相应的dll文件。
正文
1示例
简单的一个主函数:
glutInitWindowSize() ,glutCreateWindow()等函数比较简单,程序中的介绍已经足够。
下面重点介绍其它函数。
2glutInitDisplayMode()
初始化显示模式。
这里主要采用RGB模式显示,并采用双缓存模式。
双缓存模式相对的是单缓存,双缓存是现在后台缓存绘制,在绘制完成后,将后台与前台缓存交换,后台变前台,前台变后台,达到快速输出的效果。
而单缓存,在绘制时就在唯一缓存中绘制,当绘制时间比较长时,会使屏幕比较卡。
3glutKeyBoardFunc(pressKeyboard)
设定键盘响应函数为pressKeyboard,函数的结构为:
其中,key为返回的按键的ASCII编码,x和y为鼠标的当前的位置。
4glutSpecialFunc(specialKey)
实际也是针对按键响应,但与glutKeyBoardFunc相比,前者针对的是一些特殊的按键。
包括:GLUT_KEY_F1,GLUT_KEY_F2,GLUT_KEY_F3,GLUT_KEY_F4,GLUT_KEY_F5,GLUT_KEY_F6,GLUT_KEY _F7,GLUT_KEY_F8,GLUT_KEY_F9,GLUT_KEY_F10,GLUT_KEY_F11,GLUT_KEY_F12,GLUT_KEY_LEFT, GLUT_KEY_UP,GLUT_KEY_RIGHT,GLUT_KEY_DOWN,GLUT_KEY_PAGE_UP,GLUT_KEY_PAGE_DOW N,GLUT_KEY_HOME,GLUT_KEY_END,GLUT_KEY_INSERT。
函数结构与glutKeyBoardFunc相同。
5glutMouseFunc(pickTarget)
鼠标点击响应。
pickTarget函数结构如下:
6glutMotionFunc(mouseMotion)
按住鼠标移动。
mouseMotion的函数结构如下:void mouseMotion(intx,int y){}。
xy为鼠标的屏幕坐标。
在鼠标拖动过程中,与前一刻的鼠标坐标相比较,就可以比较快得到鼠标的运动情况(如鼠标的运动方向)
7glutDisplayFunc(display)
display主要是显示输出函数,需要与opengl结合,这里不仔细讲,可以参看opengl的一些绘制函数示例。
这里给出一个示例,结构如下:
8glutReshapeFunc(reshape)
对于窗口调整时,需要进行的操作。
通常在opengl里,需要进行一些投影变换和视口变换。
这里对于具体什么事投影变换和视口变换不介绍,可以查看《opengl编程指南》这本书。
这里只给出一个示例:
9glutMainLoop()
在程序中调用一次,使程序能够进入循环,等待输入。
10glutPostRedisplay()
通常,有外界输入,为了使屏幕能够有相应的响应变化,需要调用该函数,重新绘制,显示输出。