- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五二维几何变换
实验五 二维几何变换
一、实验目的
进一步加深对常用的二维几何变换的理解,如平移、旋转、放大缩小等。掌握变换顺序和变换矩阵。
二、实验任务
通过二维几何变换的数学模型,编写平移、旋转、放缩、对称变换程序;
三、实验内容和实验步骤
1.平移变换
将图形上的点(x,y)分别在x方向和y方向分别移动dx和dy,则变换后的(x’,y’)坐标值为:
x’=x+dx , y’=y+dy
变换矩阵表示为:
[x’ y’ 1]=[x y 1]
下面程序通过一个正弦曲线,来进行平移变换。
步骤1:建立MoveCmd工程,在OnDraw()函数中输入如下代码,生成正弦曲线;
void CMoveCmdView::OnDraw(CDC* pDC)
{
CMoveCmdDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int x,y,px,py,xx,yy,dx,dy;
double hx;
CPoint tp;
for(x=-180;x=180;x++)
{
hx=x*3.1415926/180;
y=(int)(100*sin(hx)); //正弦函数
px=320+x;py=240-y;
tp.x=px;tp.y=py;
pDC-SetPixel(tp,RGB(255,0,0));
}
}
注:由于使用了数学函数sin(),所以应在程序头部加入:#include “math.h”。
步骤2:将曲线沿x方向,按每隔10个像素平移一次,显示结果;
将for(x=-180;x=180;x++){…}插入以下循环语句内:
for (xx=-50;xx=50;xx=xx+10) {}
并且将px=320+x改为: px=320+x+xx。 重新编译、运行,察看运行结果。
步骤3:将曲线沿y方向,按每隔10个像素平移一次,显示结果;
将for(x=-180;x=180;x++){…}插入以下循环语句内:
for (yy=-50;yy=50;yy=yy+10){}
将py=240-y修改为 py=240-y-yy; 重新编译、运行,察看运行结果。
步骤4:编写dx=80,dy=-50时,程序运行结果。
在for(x=-180;x=180;x++){…}前加入语句:dx=80;dy=-50;
px=320+x;py=240-y;修改为:px=320+x+dx;py=240-y+dy;
2.旋转变换
将图形上的点(x,y)旋转θ角度,得到新的坐标(x’,y’)为:
x’=xcosθ-ysinθ, y’=xsinθ+ycosθ;
变换矩阵表示为:
[x’ y’ 1]=[x y 1]
下面程序通过一个正弦曲线,从0~180度,每隔10度旋转一次。
步骤1:建立工程RotateCmd,在OnDraw()中编写程序如下:
void CRotateCmdView::OnDraw(CDC* pDC)
{
CRotateCmdDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int x,y,px,py,xx,yy,dx,dy,ang;
double hx,hd;
CPoint tp;
for (ang=0;ang=180;ang=ang+10)
{
hd=ang*3.1415926/180;
for(x=-180;x=180;x++)
{
hx=x*3.1415926/180;
y=(int)(100*sin(hx)); //正弦函数
px=320+(x*cos(hd)-y*sin(hd));py=240-(x*sin(hd)+y*cos(hd)); //旋转后的坐标
tp.x=px;tp.y=py;
pDC-SetPixel(tp,RGB(255,0,0));
}
}
}
注:由于使用了数学函数sin(),所以应在程序头部加入:#include “math.h”。
3.放大缩小变换
放大缩小变换公式为:x’=x..Sx, y’=y.Sy; 其中Sx, Sy分别为x,y方向的放缩比例系数。
变换矩阵表达式为:
[x’ y’ 1]=[x y 1]
下面通过不同的比例系数来显示程序运行结果。
(1)Sx=Sy= 1.5;等比例放大
(2)Sx=Sy= 0.5;等比例缩小
(3)S
您可能关注的文档
- 奢侈品内涵及中国人奢侈品消费.doc
- 太阳能热水系统招标技术要求.doc
- 奢侈品在中国的现状及未来发展.doc
- 好声音打造成功品牌公关案例.doc
- 如何成为一个上流的硬件工程师.doc
- 存货练习题4-1-4-10.doc
- 存货练习例题.doc
- 如何推进产业聚集与升级课程的考试87分.doc
- 学校核心竞争力与教师核心竞争力.doc
- 学案3世界的气候(生).docx
- 信也科技-市场前景及投资研究报告-出海业务,互联网信贷龙头.pdf
- 中国平安-市场前景及投资研究报告:新法新班底,欠配高股息.pdf
- 厦门银行-市场前景及投资研究报告:深耕对公条线,深化两岸金融.pdf
- 2025年汽车行业市场前景及投资研究报告:内销出口双轮驱动,智能驾驶长坡厚雪.pdf
- 理想汽车-市场前景及投资研究报告:通用人工智能时代,终端愿景,高压纯电产品.pdf
- 巨人网络-市场前景及投资研究报告-品类创新,破圈Z世代,AI加速探索.pdf
- 全景运动相机行业市场前景及投资研究报告:影石创新市场空间.pdf
- 股份制公司规章制度.pdf
- 猎豹移动-市场前景及投资研究报告:服务机器人扎实,AI业务成长曲线.pdf
- 弘景光电-市场前景及投资研究报告-新兴消费电子时代,光学创新大有可为.pdf
最近下载
- SEW M系列减速机选型样本.pdf VIP
- GCP的完整版题库.doc VIP
- 计算机网络安全期末考试题 .pdf VIP
- 全国烟草管理法律法规知识竞赛题库及答案(150题).docx VIP
- 【2024新版】一升二暑假作业数学每日一练-30天.pdf VIP
- 幼儿园五年发展规划(2025-2030年).pdf
- SH╱T 3556-2015 石油化工工程临时用电配电箱安全技术规范.pdf VIP
- (正式版)D-L∕T 856-2018 电力用直流电源和一体化电源监控装置.docx VIP
- 2025年上半年党风廉政建设工作总结及下半年计划汇报报告.docx VIP
- 地下管线探测方法试验报告.doc VIP
文档评论(0)