Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14519610
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:29:47

下载本文示例代码
  本节中的例子仅仅是将第二节的例子作了一点点改动。将myDisplay函数中画三角型的那一部分提出来写成一个函数drawTriangle。然后在myDisplay函数中用drawTriangle();代替原来的语句。这时例3和例1完成的功能完全一样。而此时我们知道坐标的原点在窗口的中心。我们用glTranslate函数改变坐标的原点。同样glTranslate函数后的f和d表明参数的类型。其参数的含义和glVertex中参数的含义一样。坐标原点改变后,我们再调用一次drawTriangle();可以发现三角型的位置已经发生了变化,如图三所示。  例3:利用坐标变换在不同位置画相同的三角形(部分代码) void drawTriangle(void){ glBegin(GL_TRIANGLES);//开始画三角形 glShadeModel(GL_SMOOTH);//设置为光滑明暗模式 glColor3f(1.0,0.0,0.0);//设置第一个顶点为红色 glVertex2f(-1.0,-1.0);//设置第一个顶点的坐标为(-1.0,-1.0)  glColor3f(0.0,1.0,0.0);//设置第二个顶点为绿色 glVertex2f(0.0,-1.0);//设置第二个顶点的坐标为(0.0,-1.0) glColor3f(0.0,0.0,1.0);//设置第三个顶点为蓝色 glVertex2f(-0.5,1.0);//设置第三个顶点的坐标为(-0.5,1.0) glEnd();//三角形结束}void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT);//buffer设置为颜色可写 drawTriangle(); glTranslatef(1,0,0);//坐标变换 drawTriangle(); glFlush();//强制OpenGL函数在有限时间内运行} 图三:坐标变换后的三角形  glTranslate是对坐标进行平移,glRotate对坐标进行旋转,glScale实际上是对坐标的缩放。还有一些和透视有关的矩阵变换,在以后的例子中我们会接触到一些不同的坐标变换,在这里就不一一例举。   本节中的例子仅仅是将第二节的例子作了一点点改动。将myDisplay函数中画三角型的那一部分提出来写成一个函数drawTriangle。然后在myDisplay函数中用drawTriangle();代替原来的语句。这时例3和例1完成的功能完全一样。而此时我们知道坐标的原点在窗口的中心。我们用glTranslate函数改变坐标的原点。同样glTranslate函数后的f和d表明参数的类型。其参数的含义和glVertex中参数的含义一样。坐标原点改变后,我们再调用一次drawTriangle();可以发现三角型的位置已经发生了变化,如图三所示。  例3:利用坐标变换在不同位置画相同的三角形(部分代码) void drawTriangle(void){ glBegin(GL_TRIANGLES);//开始画三角形 glShadeModel(GL_SMOOTH);//设置为光滑明暗模式 glColor3f(1.0,0.0,0.0);//设置第一个顶点为红色 glVertex2f(-1.0,-1.0);//设置第一个顶点的坐标为(-1.0,-1.0)  glColor3f(0.0,1.0,0.0);//设置第二个顶点为绿色 glVertex2f(0.0,-1.0);//设置第二个顶点的坐标为(0.0,-1.0) glColor3f(0.0,0.0,1.0);//设置第三个顶点为蓝色 glVertex2f(-0.5,1.0);//设置第三个顶点的坐标为(-0.5,1.0) glEnd();//三角形结束}void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT);//buffer设置为颜色可写 drawTriangle(); glTranslatef(1,0,0);//坐标变换 drawTriangle(); glFlush();//强制OpenGL函数在有限时间内运行} 图三:坐标变换后的三角形  glTranslate是对坐标进行平移,glRotate对坐标进行旋转,glScale实际上是对坐标的缩放。还有一些和透视有关的矩阵变换,在以后的例子中我们会接触到一些不同的坐标变换,在这里就不一一例举。 下载本文示例代码


OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换OpenGL编程轻松入门之坐标变换
阅读(206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~