
OpenGL编程轻松入门之坐标变换
发布时间:2006-05-16 11:53:26 来源:天极开发 网友评论 0 条
本节中的例子仅仅是将第二节的例子作了一点点改动。将myDisplay函数中画三角型的那一部分提出来写成一个函数drawTriangle。然后在myDisplay函数中用drawTriangle();代替原来的语句。这时例3和例1完成的功能完全一样。而此时我们知道坐标的原点在窗口的中心。我们用glTranslate函数改变坐标的原点。同样glTranslate函数后的f和d表明参数的类型。其参数的含义和glVertex中参数的含义一样。坐标原点改变后,我们再调用一次drawTriangle();可以发现三角型的位置已经发生了变化,如图三所示。
例3:利用坐标变换在不同位置画相同的三角形(部分代码)
glTranslate是对坐标进行平移,glRotate对坐标进行旋转,glScale实际上是对坐标的缩放。还有一些和透视有关的矩阵变换,在以后的例子中我们会接触到一些不同的坐标变换,在这里就不一一例举。
例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实际上是对坐标的缩放。还有一些和透视有关的矩阵变换,在以后的例子中我们会接触到一些不同的坐标变换,在这里就不一一例举。
推荐阅讯
- Spring入门指引之理解Spring的打包方式
- BEA交付WebLogic 9.2,为实施SOA铺平道路
- Eclipse插件开发之EasyExplorer
- Tomcat 配置技巧精华详解分析
- MySQL安全性指南 (2)(转)
- 带你见识Jetaudio有趣的附加功能
- 在Oracle9i中使用多种Block Size
- 深入WebLogic Portal UI编程
- J2ME内存占用详解及优化方法
- 精华:AJAX开发简略(第一部分)
阅读排行
- 1..net页面间的参数传递简单实例
- 2.VC++与Matlab混合编程之引擎操作详解
- 3.Oracle数据库数据对象分析
- 4.Eclipse3.2+Tomcat5.5.17+Oracle9配置
- 5.Oracle数据库中索引的维护
- 6.在Oracle的网络结构中解决连接问题
- 7.Oracle数据安全面面观
- 8.Oracle数据库的ORA-00257故障解决过程
- 9.Oracle数据库备份与恢复的三种方法
- 10.Oracle与SQL Server在企业应用中的比较
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏

