OpenGL 学习笔记
2013-09-17 22:54
363 查看
画两条线段p1--p2 p3--p4的代码;
GL_LINES 线段
GL_LINE_STRIP 折线
GL_LINE_LOOP封闭折线
glVertex2iv指int
glColor3f(1.0,1.0,1.0);
glColor3i(0,255,0);
glColor3fv(Vertex1);
基本算法参考
http://www.opengpu.org/forum.php?mod=viewthread&tid=1463
glViewport(0,0,width,height);
以对窗口区域进行划分,在同一个窗口中显示分割屏幕的效果,以显示多个视图。
glMatrixMode设置当前矩阵模式:
GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作.
GL_PROJECTION,对投影矩阵应用随后的矩阵操作.
GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.
与glLoadIdentity()一同使用
glLoadIdentity():该函数的功能是重置当前指定的矩阵为单位矩阵。
glutPostRedisplay 标记当前窗口需要重新绘制。通过glutMainLoop下一次循环时,窗口显示将被回调以重新显示窗口的正常面板。
glPushMatrix压入当前矩阵堆栈。
glPopMatrix
压入当前矩阵堆栈。
glRotatef(45,1,0,0)
物體如何旋转?想象:从 坐标(0,0,0)即原点,引出一条线到(1,0,0),用右手握住这条线,这时,你会问,如何握?右手大拇指指向 (0,0,0)至(1,0,0)的方向 才握。另外四个手指的弯曲指向 即是物体旋转方向。
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)表示转轴。举个例子:
glRotatef(45.0, 0.0, 0.0, 1.0);//表示模型沿着(0,0,1)这个轴旋转45°。
5.glFrustum() ——投影变换函数 透视投影
前四个参数表示裁剪范围,后两个参数(要求为正数)表示近的面和远的面离眼睛的距离。有点儿像调焦。裁剪完后拉伸铺满整个屏幕。
6.glPerspective() ——投影变换函数 透视投影
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
第一个参数表示在y方向上的视角度数。个人理解:比如45,表示眼睛和模型中心这个条线与y轴的夹角。
第二个参数表示纵横比。x/y。比如2表示x、y本来都是1个长度,现在x可以当两个长度用,这样,模型就好像被x方向压缩了一样。
后两个参数glFrustum()中后两个相近。要求都是正数。
gluSphere(quadric, 0.3f, 32, 32); // 绘制球体
void gluSphere(GLUquadricObj *qobj, GLdouble radius, GLint slices, GLint stacks)
PARAMETERS
qobj 指定二次曲线目标(created with gluNewQuadric).
radius 指定半径
slices Specifies the number of subdivisions
around the z axis (类似于经度).
stacks Specifies the number of subdivisions along the z axis (类似于纬度).
glBegin(GL_LINES); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glEnd();
GL_LINES 线段
GL_LINE_STRIP 折线
GL_LINE_LOOP封闭折线
glVertex2iv指int
glColor3f(1.0,1.0,1.0);
glColor3i(0,255,0);
glColor3fv(Vertex1);
基本算法参考
http://www.opengpu.org/forum.php?mod=viewthread&tid=1463
glViewport(0,0,width,height);
以对窗口区域进行划分,在同一个窗口中显示分割屏幕的效果,以显示多个视图。
glMatrixMode设置当前矩阵模式:
GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作.
GL_PROJECTION,对投影矩阵应用随后的矩阵操作.
GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.
与glLoadIdentity()一同使用
glLoadIdentity():该函数的功能是重置当前指定的矩阵为单位矩阵。
glutPostRedisplay 标记当前窗口需要重新绘制。通过glutMainLoop下一次循环时,窗口显示将被回调以重新显示窗口的正常面板。
glPushMatrix压入当前矩阵堆栈。
glPopMatrix
压入当前矩阵堆栈。
glRotatef(45,1,0,0)
物體如何旋转?想象:从 坐标(0,0,0)即原点,引出一条线到(1,0,0),用右手握住这条线,这时,你会问,如何握?右手大拇指指向 (0,0,0)至(1,0,0)的方向 才握。另外四个手指的弯曲指向 即是物体旋转方向。
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)表示转轴。举个例子:
glRotatef(45.0, 0.0, 0.0, 1.0);//表示模型沿着(0,0,1)这个轴旋转45°。
5.glFrustum() ——投影变换函数 透视投影
前四个参数表示裁剪范围,后两个参数(要求为正数)表示近的面和远的面离眼睛的距离。有点儿像调焦。裁剪完后拉伸铺满整个屏幕。
6.glPerspective() ——投影变换函数 透视投影
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
第一个参数表示在y方向上的视角度数。个人理解:比如45,表示眼睛和模型中心这个条线与y轴的夹角。
第二个参数表示纵横比。x/y。比如2表示x、y本来都是1个长度,现在x可以当两个长度用,这样,模型就好像被x方向压缩了一样。
后两个参数glFrustum()中后两个相近。要求都是正数。
gluSphere(quadric, 0.3f, 32, 32); // 绘制球体
void gluSphere(GLUquadricObj *qobj, GLdouble radius, GLint slices, GLint stacks)
PARAMETERS
qobj 指定二次曲线目标(created with gluNewQuadric).
radius 指定半径
slices Specifies the number of subdivisions
around the z axis (类似于经度).
stacks Specifies the number of subdivisions along the z axis (类似于纬度).
相关文章推荐
- OpenGL学习笔记之纹理贴图
- OpenGL学习笔记2013.4.10第一个OpenGL窗口
- opengl基础,学习笔记
- OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍
- OpenGL学习笔记:动画基本概念
- OpenGL学习笔记:状态机理念
- Opengl学习笔记
- openGL学习笔记2(颜色)
- opengl学习小笔记(2)使用OpenGL绘制嵌套旋转六边形
- opengl学习笔记(2)
- Android OpenGL学习笔记
- 我的OpenGL学习笔记一
- Android OpenGL 学习笔记 --开始篇
- glew,glfw实现最新的opengl-学习笔记4实现纹理
- 用glew,glfw实现opengl学习笔记5课纹理(2)
- OpenGL学习笔记(5)3D基本概念
- openGL学习笔记2——视图和模型变换
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- OpenGL学习笔记之配置OpenGL
- Opengl学习笔记之Textures