计算机图形学显示变算法具体程序实现.docVIP

计算机图形学显示变算法具体程序实现.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文档。上传文档
查看更多
计算机图形学显示变算法具体程序实现

数学与软件科学学院 实验报告 学期:___2010 至_2011 第__一__ 学期 2010年12月21日 课程名称:____计算机图形学 _____ 专业:__信息与计算科学_ 2007级_5_班 实验编号: 07 实验项目_____显示变换__ 指导教师__庞朝阳_ 姓名: 学号: 座机电话号码 __ 实验成绩:_____ 实验目的: 1 了解掌握显示变换的相关知识,知道什么是平行投影和透视投影; 实验内容: 1 知道显示变换是什么; 2 掌握平行投影变换; 3 掌握透视投影变换; 4 编写并执行简单的Prolog程序,并熟悉测试或调试的方法。 实验步骤: 1 显示变换 三维空间中的物体要在二维的屏幕显示出来,必须通过投影的方式把三维物体转换成二维的平面图形。投影的方式有平行投影,透视投影。 平行投影变换 2 平行投影变换 平行投影可根据投影方向与投影面的夹角分为:正投影和斜投影。当投影方向与投影面垂直时,为正投影;否则为斜投影。 正投影 假设投影平面垂直于Z轴,且位于Z Z0外,则在视坐标系中任意一点(X,Y,Z)的投影是过该点的投影线与投影平面的交点,如下图: P x,y,z p` x`,y`,z` Z0 Z 则空间点的坐标与投影坐标间关系为: x` x , y` y , z` z 即 . 2.若投影面与XY平面重合,即Z0 0,则有: . 即平面投影的变换矩阵为: Mz(平) 同理可得: 在y0z平面的投影变换矩阵为: Mx 平 在x0z平面的投影变换矩阵为: My 平 2.斜投影 如下图 求空间中任意一点D(x,y,z)在斜面ABC上的投影。 Step1:确定一定Q,并过P作斜面的法向量。 由 1,0,1 , 0,1,-1 及 * 1,1,1 。单位值得: 。 P点坐标为P(1/2,0,1/2)。 Step2:将过点的法向量 平移到原点O,记该平移变换为T 。 Step3:将平移后的法向量 (连同斜面)绕x轴旋转角度,使斜面与xOz面垂直,则: cos ,则 , sin ,即: R Step4:记旋转后法向量为,则有: R* 记与z轴的夹角为,则tan ,即sin ,cos 。 Step5:使连同斜面)绕y轴旋转-角度后与z轴重合,即斜面与xOy面重合,则: R Step6:绕z轴向xOy面平行投影(正投影),则有: M Step7:作一系列逆变换,使P点还原到原来位置。像上:对任意点D(x,y,z),它在斜面ABC上的投影记为D x’,y’,z’, ,则有 T*R*R* R* R* T* 如原点(0,0,0)在斜面ABC上的投影点为(1/3, 1/3, 1/3) ②透视投影变换 据投影定义,空间任意一点的透视投影是投影中心与空间点构成的投影线与投影平面的交点。 假设视点(投影中心)为E(0,0,d),投影平面为xOy面,空间中任意一点记为P(x,y,z),求P点在xOy面上的像点P’ x’,y’,z’ 及P到P’点的变换矩阵M。如下图所示: 求解:利用三角形相似原理 则有: ** * 即M 。 若记为:(x’,y’,z’,H) (x,y,z,1)* M 则M 同理,若视点E在y轴上,即E(0,d,0),且投影面为xOz平面,则有: M 或 若视点E在x轴上,即E(d,0,0),且投影面为yOz平面,则有: 或 ③视坐标系与视变换(斜方向投影) 前面得到的是特殊情况下的透视和平行投影的变换矩阵,而实际情况往往需要在一般情况下进行投影变换。 首先根据场景要求建立一视坐标系(如下图),然后构建一个视平面(也称投影平面),使该平面与z轴垂直。显示过程即是场景中物体从世界坐标转换成视坐标。最后,把视坐标再投影到视平面。 Step1:建立视坐标系。 1.取视平面(投影平面)的法矢量为视坐标系的z轴方向。记为z单位矢量。 2.记视平面中心P为视坐标系原点,P(x,y,z),则存在平移矢量 (x,y,z). 3.取y,使y*z 0 4.由x y*z确定视坐标的x轴,从而得到视坐标系 P,x . Step2:求世界坐标系(O,x)到视坐标(P, x, y,z)的变换。 x 1,0,0 ,y 0,1,0 ,z 0,0,1 设x u* x+m* y+n* z y u* x+m* y+n* z z u* x+m* y+n* z 考虑到原点(平移变换),则有: (x,y,z,P) (x,y,z,O)*M 且:M Step3:求世界坐标中任意一点P(x,y,z)在视平面内的投影P’ x’,y’,z’ 。(p在z的负向)。 则有: T*M*.其中:T 。 ④.求侧面在xOy面的投影 思路:RRTP 即: R*R*T*P*T* R* R* ⑤窗口

文档评论(0)

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

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

1亿VIP精品文档

相关文档