- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 2初中数学总复习《方程与不等式》讲义.doc
- 从教学《角的认识》谈“空间与图形”的教学方法.doc
- 三角函数中的数与形.doc
- 初三数学备课组计划进度.doc
- 苏教版高一必修一基本初等函数.doc
- 图形认识教案.doc
- 职中数学第三章 函数.doc
- 中考数学专题复习四 分式方程和不等式(组).doc
- 2016年潍坊市初中学业水平考试数学试题.doc
- 第4章 使用简单函数.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)