基于OpenGL的字母图形的创建—Pp(课程设计完整代码运行截图).docVIP

基于OpenGL的字母图形的创建—Pp(课程设计完整代码运行截图).doc

  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文档。上传文档
查看更多
基于OpenGL的字母图形的创建—Pp 摘 要:此次课程设计我基于OpenGL创建了大写字母P和小写字母p的三维图形。在美式键盘大写未锁定条件下,运行程序时,可以实现图形的自转、手控绕X,Y,Z轴旋转、放大、缩小和左、右平移。程序还添加了材质,光源和光照的设置,并且在运行结束后有解说。 关键词:OpenGL;三维建模;键盘响应 设计目的 第一,通过实践进一步领会程序设计的特点和应用,提高运用OpenGL的能力。 第二,通过实践加强对计算机图形学课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。 第三,通过使用OpenGL进行图形的创建,切实提高面向对象的建模能力,为后续的相关课程的学习打下基础。 2 功能描述 运行程序,窗口大小为800*800。 程序运行,图形会绕X,Y,Z轴循环地自转。 在美式键盘大写未锁定条件下,点击a键,Pp图形会放大。 在美式键盘大写未锁定条件下,点击s键,Pp图形会缩小。 在美式键盘大写未锁定条件下,点击d键,Pp图形会向左移动。 在美式键盘大写未锁定条件下,点击f键,Pp图形会向右移动。 分别点击↑键 、↓键,Pp图形会分别绕x轴顺时针旋转和逆时针旋转。 分别点击← 键、→键,Pp图形会分别绕y轴顺时针旋转和逆时针旋转。 分别点击PageUp键、PageDown键,Pp图形会分别绕z轴顺时针旋转和逆时针旋转。 背景颜色为天蓝色,设置了材质,光源和光照。 图形的整体形状不会因为窗口比例的改变而影响,并且图像总是出现在窗口的中心。 关闭图形界面时,程序框里会出现提示。 图形界面的标题处会提示使用方法。 3 主要知识点控件的消息响应.1 初始化材质属性,光源属性,光照模型 void init() { glClearColor(0.0,0.5,0.9,1.0);//指定背景颜色为天蓝色 glShadeModel(GL_SMOOTH);//指定明暗度模型 //指定材质参数 GLfloat mat_specular[]={1.0,1.0,0.0,1.0}; GLfloat mat_shininess[]={50.0}; glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);//镜面 glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);//发亮 //指定光源属性 GLfloat light_position[]={1.0,0.0,1.0,0.0};//光源位置 GLfloat light_ambient[]={0.0,1.0,1.0,1.0};//环境光参数 GLfloat light_diffuse[]={1.0,1.0,0.0,1.0};//漫射光参数 GLfloat light_specular[]={1.0,1.0,0.0,1.0};//镜面反射光参数 glLightfv(GL_LIGHT0,GL_POSITION,light_position);//位置 glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);//环境光 glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);//漫反射 glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);//镜面反射 //启动光源 glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);//启用0号光源 glEnable(GL_DEPTH_TEST); } 4.2 构建P和p的图形,并且实现图形的自转 void Pp(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0f,0.0f,0.5f); float i=0; glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f);//上下旋转以x轴为旋转中心 glRotatef(yRot, 0.0f, 1.0f, 0.0f);//左右旋转以y轴为旋转中心 glRotatef(zRot, 0.0f, 0.0f, 1.0f);//上下旋转以Z轴为旋转中心 /*让图形同时沿着X,Y,Z轴循环地自转*/ yRot+=0.06; if(yRot360.0) yRot-=360.0; xRot+=0.0

文档评论(0)

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

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

1亿VIP精品文档

相关文档