网站大量收购独家精品文档,联系QQ:2885784924

实训3图形变换.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实训3图形变换

实训3 图形变换 一、实验目的 1、掌握2维与3维图形变换矩阵 2、在TC2.0环境下,编写程序实现二维图形的变换。 二、实验环境 计算机、Turbo C或其他C语言程序设计环境 三、实验内容 参考二维图形变换通用子程序AFFINE.C,编写程序实现将一四边形作平移变换。 2.参考二维图形变换通用子程序AFFINE.C,编写程序将一四边形作旋转360度。 四、实验步骤 1.算法、原理清晰,有详细的设计步骤; 设Tx,Ty,Tz是物体在三个坐标方向上的移动量,则有公式: x′=x+Tx y′=y+Ty z′=z+Tz 矩阵运算表达为: [x′ y′ z′ 1]=[x y z 1] 2.依据算法、步骤或程序流程图,用C语言编写源程序; 参考程序: double sin(),cos(); double xmax=639.0,ymax=399.0; double f[3][3],xx,yy; scx(xj) double xj; {int x;x=(int)(xj+xmax/2);return(x);} scy(yj) double yj; {int y;y=ymax-(int)(yj+(ymax/2));return(y);} parallel(dx,dy) double dx,dy; { f[0][0]=1.0;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=0.0;f[1][1]=1.0;f[1][2]=0.0; f[2][0]=dx;f[2][1]=dy;f[2][2]=1.0; } rotate(theta) double theta; { double th; th=theta/180*3.1415927; f[0][0]=cos(th);f[0][1]=sin(th);f[0][2]=0.0; f[1][0]=-sin(th);f[1][1]=cos(th);f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } scale(s) double s; { f[0][0]=s;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=0.0;f[1][1]=s;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } taisho_x() { f[0][0]=1.0;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=0.0;f[1][1]=-1;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } taisho_y() { f[0][0]=-1.0;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=0.0;f[1][1]=1;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } taisho_o() { f[0][0]=-1.0;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=0.0;f[1][1]=1;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } taisho_xy() { f[0][0]=0.0;f[0][1]=0.0;f[0][2]=0.0; f[1][0]=1.0;f[1][1]=0.0;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } taisho(aa,bb,cc) { float r,p; r=bb*bb-aa*aa;p=aa*aa+bb*bb; f[0][0]=-r/p;f[0][1]=-2*aa*bb/p;f[0][2]=0.0; f[1][0]=-2*aa*bb/p;f[1][1]=-r/p;f[1][2]=0.0; f[2][0]=-2*aa*cc/p;f[2][1]=-2*bb*cc/p;f[2][2]=1.0; } shear(c,b) double c,b; { f[0][0]=1.0;f[0][1]=b;f[0][2]=0.0; f[1][0]=c;f[1][1]=1.0;f[1][2]=0.0; f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0; } axis() { line(scx(0),scy(-ymax/2),scx(0),scy(ymax/2)); line(scx(-xmax/2),scy(0.0),scx(xm

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档