西电计算机图形学实验报告.docxVIP

  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操作三维物体金字塔 一、 实验目的 使用OpenGL进行三维图形的绘制并能够实行平移、旋转和缩 放和在光照等条件下的三维观察。 二、 实验概要设计 本次实验利用VS2010 Win32平台和开源图形库OpenGL完成了 对一个金字塔的绘制和以不同方式实现观察的操作,该模拟设计能实 现基木的图形操作功能。通过木次实验,了解了图形学里使用OpenGL 的一些基于操作,了解直线、矩形的绘制操作、旋转、移动和缩操作、 不同方式投影的OpenGL实现,不同观察方式的OpenGL实现。 本设计包括模式选择模块、图形绘制模块、键盘鼠标控制模块。 模式选择模块实在Win32控制台上实现,主要实现了选择不同投影方 式(透视投影或者正面投影),以及不同的观察模式(变换物体,或 者变换观察点位置)。图形绘制模块,该模块根据模式的选择绘制图 形,渲染场景。主要实现空心矩形的绘制、投影、光照、对变换操作 的响应等。键盘鼠标控制模块,该模块主要实现通过鼠标点击来控制 移动,A, D控制缩放,方向键盘f I —>控制旋转。(控制观察点 模式下“ f 控制观察点与物体的距离來实现缩放,“ 一,-,A,D” 控制观察者的360度观察,“S,W,”控制观点的俯瞰或者仰视) 三、实验环境 Windows 10, VisualStudio 2015 四、实验内容与完成情况 创建OpenGL开发环境 配置编译环境 OpenGL的初始化 绘制三维立体图形 实现图形的平移、旋转、缩放操作 6 ?调试程序 五、实验过程和步爰 //开始绘制金字塔的各个面三维图形的绘制源代码和实验效果 //开始绘制金字塔的各个面 glBegin(GL_TRIANGLES); glColor3ub(217,167,22); glNormal3f(0.0,2.0,4.0);//ffi 的法向量 glVertex3f( O.Of, l.Of, 0.00; glVcrtcx3f(-1 .Of,-1 .Of, 1 .Of); glVertex3f( 1.0f,-1.0f glVertex3f( O.Of, l.Of, 0.00; glVcrtcx3f(-1 .Of,-1 .Of, 1 .Of); glVertex3f( 1.0f,-1.0f; l.Of); glNormal3f(4.0,2.0,0.0); glVertex3f( O.Of, 1.0f,0.0f); glVertex3f( l.Of,-l.Of, l.Of); glVcrtcx3f( l.Of,-l.Of,-l.Of); glNormal3f(0.0,2.0,-4.0); glVertex3f( O.Of, l.Of, O.Of); glVertex3f( l.Of,-l.Of,-l.Of); glVertex3f(-l.Of,-l.Of,-l.Of); glNormal3f(-4.0,2.0,0.0); glVertex3f( O.Of, 1.0f,0.0f); gl Vertex3f(-1 .Of,-1 .Of,-1 .Of); glVertex3f(-l.Of,-l.Of, l.Of); glEnd(); //三角形的上顶点(丽侧而) //三角形的左下顶点(前侧面) //三介形的右下顶点(前侧血) //三角形的上顶点(右侧面) //三角形的左下顶点(右侧面) //三角形的右下顶点(右侧面) //三角形的上顶点(后侧面) //三角形的左下顶点(后侧而) //三角形的右下顶点(示侧面) //三角形的上顶点(左侧面) //三角形的左下顶点(左侧面) //三角形的右下顶点(左侧面) 图1-1彩色三维金字塔 三维金子塔的平移、旋转、缩放 点的平移矩阵 平移变换是把点沿着给泄的方向移动固定的距离,而在三维空间 i般通过平移炬阵是实现。 而平移变换矩阵: 1 0 0 0 1 0 Qy 0 0 1 Qz 0 0 0 1 图1-2金字塔分别向左和向右平移 点的缩放矩阵 不动点的缩放可以沿着三个坐标轴的方向进行彼此独立的缩放。 同时,这三个方向的缩放矩阵可以表示为: SP 而平移变换矩阵: Bxs==°000Py0 Bx s==° 0 0 0 Py 0 0 0 0 爲 0 0 0 0 1 ■J OpenGL Gkrt Demo 图1-3金字塔的放大和缩小 (3)点的旋转矩阵 不动点的旋转相对而言很复杂,首先讨论不动点为原点的旋转, 这样旋转就有三个口由度,分别独立于三个坐标轴的旋转。 这样,就有三个旋转矩阵: 绕刁处标轴转动的变换矩阵 cos0 p _ sin 0 匕一 0 0 -sin0 cos 3 0 0 0 0 1 0 0 0 0 1 其屮,绕x坐标轴转动的变换矩阵 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档