二维图形几何变换.doc
文本预览下载声明
《计算机图形学》
实验报告
题 目:二维图形几何变换
院、系(院):计算机科学与技术学院
专业及班级:
姓 名:
学 号:
日 期:
实验目的
1)掌握3*3矩阵乘法运算的编程实现;
2)掌握平移,比例,旋转三种基本二维几何变换矩阵生成;
3)掌握相对于任意参考点的二维复合变换矩阵生成。
实验要求
1)设计实现二维图形变换类,具有平移,比例,旋转二维几何变换功能,以及相对于任意参考点的二维复合变换功能;
2)将2.2节直线类所绘制的菱形线框,绕最上端A点匀速旋转,并要求相对于A点来回缩放;
3)使用双缓冲机制进行图形绘制,避免运动闪烁,所有图形先绘制到用户自定义的DC,绘制完成后再统一拷贝到屏幕DC。
详细设计
3.1核心算法及类型设计
平移变换矩阵:
旋转变换矩阵:
比例变换矩阵:
相对于任意参考点的旋转变换矩阵:
相对于任意参考点的比例变换矩阵:
3.2程序设计实现及流程
典型测试结果
实验问题总结
通过本次试验让我有一次对MFC有了进一步的了解,在本次实验中我也遇到了一些错误,但是经过后来我和同学的讨论也得到了改正,本次试验让我进一步熟悉了二维图形几何变换的过程及变换矩阵。也熟悉了通过程序来实现二维图形的几何变换。
开始
定义变量a,A,points[4], s,step,tans,theta,*line
设置坐标系, 绘制双缓冲机制, 绘制坐标轴。
200→a, (0,a)→A,
points[0].x←0, points[0].y←a;
points[1].x←a, points[1].y←0;
points[2].x←0, points[2].y←-a;
points[3].x←-a,points[3].y←0;
(s=2.0||s=0.5)
-step→step;
s+step→s;
tans.ScalePoint(s,s,A);
theta=0.0;
theta=360.0
theta=0.0
tans.RotatePoint(theta,A);
绘制菱形的AB,BC,CD,DA四条边
拷贝内存图到屏幕
Invalidate(FALSE)
结束
显示全部