注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

辫子

这里的东东都转到了:hi.baidu.com/fairzy

 
 
 

日志

 
 

OpenGL编程轻松入门之坐标变换 [转]  

2008-08-04 09:27:58|  分类: OpenGL编程轻松入 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本节中的例子仅仅是将第二节的例子作了一点点改动。将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函数在有限时间内运行

}

OpenGL编程轻松入门之坐标变换 [转] - fancylst6 - 辫子

图三:坐标变换后的三角形

  glTranslate是对坐标进行平移,glRotate对坐标进行旋转,glScale实际上是对坐标的缩放。还有一些和透视有关的矩阵变换,在以后的例子中我们会接触到一些不同的坐标变换,在这里就不一一例举。

  评论这张
 
阅读(57)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018