二维图形几何变换.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机图形学》
实验报告
题目:二维图形几何变换
院、系(院):计算机科学与技术学院
专业及班级:_______________________
姓名:_______________________
学号:_______________________
日期:_______________________
1. 实验目的
1 )掌握3*3矩阵乘法运算的编程实现;
2)掌握平移,比例,旋转三种基本二维几何变换矩阵生成;3)掌握相对于任意参考点的二维复合变换矩阵生成。
2. 实验要求
1 )设计实现二维图形变换类,具有平移,比例,旋转二维几何变换功能,以及相对于任意参考点的二维复合变换功能;
2 )将2.2节直线类所绘制的菱形线框,绕最上端A点匀速旋转,并要求相对于A点来回缩放;
3)使用双缓冲机制进行图形绘制,避免运动闪烁,所有图形先绘制到用户自定义的DC ,绘制完成后再统一拷贝到屏幕DC。
3 .详细设计
3.1核心算法及类型设计
平移变换矩阵:
-i o o-
Tt= 0 1 0
tx ty 1
旋转变换矩阵:
cos a sin a 0
Tr = -sin a cos a 0
0 0 1
比例变换矩阵:
5X 0 0
Ts = 0 sy 0
0 0 1
相对于任意参考点的旋转变换矩阵:
_ 1 0 O'cos a sin a 0-1 0 0 T"=0 1 0•-sin a cos a 0•0 1 0
-tx ty 10 0 1
——
tx ty 1相对于任意参考点的比例变换矩阵:
'10O
-sx0o-10o
邛=010•0sy0•010
-tx F1001tx ty i 3.2程序设计实现及流程
开始
—!
------- > 定义变量a,A,points[4], s,step,tans,theta,*line
设置坐标系,绘制双缓冲机制,绘制坐标轴。
200—a, (0,a)—A, points[0].x—0, points[0].y—a; points[l].x—a,
points[l].y—0; points[2].x—0, points[2[.y—・a; points[3J.x<--
a,points[3].y^-0;
(s>=2.0||s<=0.5)
s+step—s;
tans.ScalePoint(s,s,A); <-step-*step;
theta=0.0;
4 .典型测试结
果
V
拷贝内存图到屏幕
5.实验问题总结
通过本次试验让我有一次对MFC有了进一步的了解,在本次实验中我也遇到了一些错误,但是经过后来我和同学的讨论也得到了改正, 本次试验让我进一步熟悉了二维图形几何变换的过程及变换矩阵。也熟悉了通过程序来实现二维图形的几何变换。