第五章 基本图形生成算法.ppt

  1. 1、本文档共166页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
k=(5-0)/(8-0)=5/8, 此时|k|1 加0.5后取整 一、对于椭圆的上半部分 最大位移方向为x,因此每次在x的方向上面加1,y方向上面减1或者是减0 由于弧起点为(0,b),d的初值为 刚转入下半部分时,必须对下半部分的中点判别式进行初始化 直线圆椭圆生成演示(算法) chap5\直线圆椭圆生成.EXE 直线的绘制 * 图5-58 画线模式用于构造线段 多边形面的绘制 三角形面的绘制 GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 四边形面的绘制 GL_QUADS GL_QUADS_STRIP 多边形面的绘制(GL_POLYGON) * 多边形面的绘制 多边形面的绘制规则 所有多边形都必须是平面的。 多边形的边缘决不能相交,而且多边形必须是凸的。 解决:对于非凸多边形,可以把它分割成几个凸多边形(通常是三角形),再将它绘制出来。 * 多边形面的绘制 问题:轮廓图形状态会看到组成大表面的所有小三角形。处理OpenGL提供了一个特殊标记来处理这些边缘,称为边缘标记。 glEdgeFlag(True) glEdgeFlag(False) * 多边形面的属性 多边形面的正反属性(绕法) 指定顶点时顺序和方向的组合称为“绕法”。绕法是任何多边形图元的一个重要特性。一般默认情况下,OpenGL认为逆时针绕法的多边形是正对着的。 glFrontFace(GL_CW); * 多边形面的属性 多边形面的颜色 glShadeModel(GL_FLAT) 用指定多边形最后一个顶点时的当前颜色作为填充多边形的纯色,唯一例外是GL_POLYGON图元,它采用的是第一个顶点的颜色。 glShadeModel(GL_SMOOTH) 从各个顶点给三角形投上光滑的阴影,为各个顶点指定的颜色之间进行插值。 * 多边形面的属性 多边形面的显示模式 glPolygonMode(GLenum face,GLenum mode); 参数face用于指定多边形的哪一个面受到模式改变的影响。 参数mode用于指定新的绘图模式。 * 多边形面的属性 多边形面的填充 多边形面既可以用纯色填充,也可以用32×32的模板位图来填充。 void glPolygonStipple(const GLubyte *mask); glEnable(GL_POLYGON_STIPPLE); * 多边形面的属性 多边形面的法向量 法向量是垂直于面的方向上点的向量,它确定了几何对象在空间中的方向。 在OpenGL中,可以为每个顶点指定法向量。 void glNormal3{bsidf} ( TYPE nx, TYPE ny, TYPE nz); void glNormal3{bsidf}v (const TYPE* v); * OpenGL中的字符函数 GLUT位图字符 void glutBitmapCharacter(void *font, int character); GLUT矢量字符 void glutStrokeCharacter(void *font, int character); * OpenGL中的反走样 启用反走样 glEnable(primitiveType); 启用OpenGL颜色混和并指定颜色混合函数 glEnable(GL_BLEND); glBlendFunc(GL_SCR_ALPHA, GL_ONE_MINUS_SRC_ALPHA); * OpenGL中的反走样 颜色混和函数用于计算两个相互重叠的对象的颜色。 在RGBA颜色模式(A表示透明度)中,已知源像素的颜色值为(Sr,Sg,Sb,Sa),目标像素的颜色值为(Dr,Dg,Db,Da),颜色混合后像素的颜色为: (RS·Sr +RD·Dr,GS·Sg +GD·Dg,BS·Sb +BD·Db,AS·Sa +AD·Da) * OpenGL中的反走样 定义混合因子 void glBlendFunc(GLenum srcfactor, GLenum destfactor); * 常量 RGB混合因子 Alpha混合因子 GL_ZERO (0,0,0) 0 GL_ONE (1,1,1) 1 GL_SRC_COLOR (RS,GS,BS) AS GL_ONE_MINUS_SR

文档评论(0)

awang118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档