OpenGL_入门.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.1 简介 8.2 OpenGL基本程序结构 8.3 OpenGL程序设计入门 8.3 OpenGL程序设计入门 OpenGL的状态机制 OpenGL中的图元绘制 坐标变换及其OpenGL实现 应用变换的一个实例 光照处理 8.3.2 OpenGL中的图元绘制 任何复杂的图形都是由基本的图元点、线和多边形组成的。 程序格式如下: 要绘制某个几何对象,首先必须指明究竟是哪种类型的几何对象(例如点、线和多边形),否则系统在执行绘图操作时无法判断究竟是画什么。OpenGL提供了一对用于指定顶点序列操作的函数,确定基本几何对象的类型。 glBegin(…); ……//描述一组顶点,用于建构某种几何对象 glEnd(); 1. 点的绘制 OpenGL中点定义为一个方块,在默认状态下,点是屏幕上的一个像素。在OpenGL中,一个点是当作一个 n(2,3,4)维向量来处理的。 OpenGL 中的点是三维的,如果用户设定二维坐标(x,y),则OpenGL在实际计算时处理的点为(x,y,0);对于由四维齐次坐标定义的顶点(x,y,z,w), 在w非零时,齐次顶点(x,y,z,w)对应于三维坐标中的点(x/w,y/w,z/w);若w =0.0,则对应于无穷远处的点。 glVertex {2,3,4}{dfis}{v}(TYPE coords); 例如: glVertex2i(0,1); glVertex3d(-1.0,1.0,3.1425926); glVertex4d(40,-15.9, 0,2); Glfloat v[3]={-1.2f,3.4f,5.6f}; glVertex3fv(v); 以下操作的结果是在屏幕上绘制三个点 : glBegin(GL_POINTS) glVertex3f(1.0,0.0,0.0); glVertex3f(1.0,1.0,0.0); glVertex3f(0.0,1.0,1.0); glEnd(); 2. 线的绘制 与数学意义上两端无限延伸的直线不同,OpenGL的线是数学定义中的线段,用成对的端点来描述。如: glBegin(GL_LINES) glVertex2f(0.0,0.0); glVertex2f(1.0,1.0); glEnd(); 上述操作描述了一条由坐标原点到点(1.0,1.0)的线段。 3. 多边形的绘制 多边形指封闭线段围成的区域。但OpenGL中可以描述的多边形有两点限制:多边形的边除了多边形的顶点外不允许相交,即确保多边形为简单多边形;多边形为凸多边形,即任给多边形的两个内部点,其连线完全在多边形内。 多边形的描述方式如下: glBegin(GL_POLYGON); glVertex*(v0); glVertex*(v1); …….. glVertex*(vn); glEnd(); 其中,*表示glVertex函数的上述任一种组合形式,由多边形顶点v0,v1,…,vn的表示形式而定。 注意:多边形顶点应按一定顺序排列(如逆时针)。 4. 矩形的绘制 由于矩形在几何体构造中出现得比较频繁,所以OpenGL提供了专门的矩形函数: void glRect{dfis}(TYPE x1, TYPE y1, TYPE x2, TYPE y2); void glRect{dfis}v (TYPE *v1, TYPE *v2); 矩阵的左上、右下角点坐标分别为(x1,y1)和(x2,y2),或者用数组指针v1、v2表示。用上述函数描述的矩形位于z=0平面内,并且各边分别平行于x、y轴。但注意:经过坐标变换之后,这些特性可能改变。 例8.2 基本的图元绘制程序 为简单起见,我们仅改变例8.1中的绘制函数void CALLBACK display(void)如下: void CALLBACK display(void) { glClear(GL_COLOR_BUFFER_BIT); //将颜色缓存清为glClearColor命令所设置的颜色,即背景色 ? glColor4f(1.0,1.0,1.0,1.0); //选颜色(R,G,B) glPointSize(6.0); //设置点的大小 glBegin(GL_POINTS); //在屏幕上绘制三个点 glVertex3f(0.1,0.2,0.0); glVertex3f(0.2,0.7,0.0); glVertex3f(0.5,0.8,0.0); glEnd(); glBegin(GL_LINES); //在屏幕上绘制一条线段

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档