dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>文章内容
OpenGL编程轻松入门之坐标变换
来源: 天极开发 作者: 黄燕
  本节中的例子仅仅是将的例子作了一点点改动。将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编程轻松入门之堆栈操作
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言学习
·C语言指针
·C语言数组排序小结
·c语言 最简单的推箱子游戏
·c语言 全国计算机编程大赛复赛试
·c语言 全国计算机编程大赛复赛试
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
  相关文章
·OpenGL编程轻松入门之使用颜色
·OpenGL编程轻松入门之堆栈操作
·OpenGL编程轻松入门之一个简单的
·OpenGL编程轻松入门之显示例表
·OpenGL编程轻松入门之背景简介
·OpenGL编程轻松入门之使用光照和
·Visual C++程序调试方法入门
·OpenGL编程轻松入门之纹理映射
·利用VC++实现局域网实时视频传输
·OpenGL编程轻松入门之特殊效果操
·简单SNMP管理程序的VC++代码实例
·OpenGL编程轻松入门之曲面和曲线
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763