图形学实验报告六-二维图形的几何变换.doc

上传人:牧羊曲112 文档编号:2793170 上传时间:2023-02-25 格式:DOC 页数:11 大小:437KB
返回 下载 相关 举报
图形学实验报告六-二维图形的几何变换.doc_第1页
第1页 / 共11页
图形学实验报告六-二维图形的几何变换.doc_第2页
第2页 / 共11页
图形学实验报告六-二维图形的几何变换.doc_第3页
第3页 / 共11页
图形学实验报告六-二维图形的几何变换.doc_第4页
第4页 / 共11页
图形学实验报告六-二维图形的几何变换.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《图形学实验报告六-二维图形的几何变换.doc》由会员分享,可在线阅读,更多相关《图形学实验报告六-二维图形的几何变换.doc(11页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上贵州大学实验报告学院:计算机科学与信息学院 专业:计算机科学与技术 班级: 101姓名学号实验组6实验时间2013.5.9指导教师吴云成绩实验项目名称二维图形的几何变换实验目的掌握二维图形的基本几何变换:位置改变(平移、旋转)和变形(缩放、错切,反射、投影等)以及复合变换。实验要求1、 在VS2010环境下利用C#编程实现画二维图形的几何变换。2、 给出代码。3、 附上结果截图。实验原理标准齐次坐标(x,y,1) 二维变换的矩阵表示平移变换 旋转变换 放缩变换l平移变换只改变图形的位置,不改变图形的大小。l旋转变换不改变图形的形状l放缩变换引起图形形状的变化。复合变换

2、结果与变换的顺序有关(矩阵乘法不可交换)例:对一矩形先缩放S(2,0.5),再旋转R(p/6)。对称变换关于x轴的对称变换:关于y轴的对称变换: 实验环境VS2010(C#) 实验步骤1.掌握算法原理;2.依据算法,编写源程序并进行调试; 下面缩放变化的算法实现: private void TriangleChange()/缩?小? Pen pen = new Pen(Color.Gray, 2); int x, y; x = point.X + 50; y = point.Y - 100; Point points = new Point(x,y), new Point(x+point.X+

3、10)/2,(y+point.Y-20)/2), new Point(x+point.X+80)/2,(y+point.Y-50)/2) ; graphics.DrawPolygon(pen, points); 下面是旋转变化的算法实现: private void PolygonMove() graphics.TranslateTransform(256, 181);/将?中D点?坐?标移?动到?你?要a的?点?处| PointF p1, p2, p3, p4; p1 = PointsChange(10, 10); p2 = PointsChange(30, 100); p3 = Points

4、Change(60, 160); p4 = PointsChange(80, 90); for (int i = 0; i 360;i+ ) PointF points1 = p1, p2, p3, p4 ; graphics.DrawPolygon(pen, points1); for (int j = 0; j = 360; j +=15) graphics.RotateTransform(15.0f); private PointF PointsChange( float x, float y) PointF pointC=new PointF(); float angle,langle

5、; float PI=3.f; angle = 15 * PI / 180; langle = 30 * PI / 180; x = (float)(x * Math.Cos(langle); y = (float)(y * Math.Sin(langle); pointC.X = (float)(x * Math.Cos(angle) - y * Math.Sin(angle); pointC.Y = (float)(x * Math.Sin(angle) + y * Math.Cos(angle); return pointC; 下面是对称变换的实现代码: private void Tri

6、angleMove()/对?称? Pen pen = new Pen(Color.Gray, 2); /关?于Y对?称? if (checkY.Checked = true) Point points1 = new Point(point.X-50,point.Y-100), new Point(point.X-30,point.Y-60), new Point(point.X-65,point.Y-75) ; graphics.DrawPolygon(pen, points1); /关?于X对?称? if (checkX.Checked = true) Point points2 = new

7、 Point(point.X+50,point.Y+100), new Point(point.X+30,point.Y+60), new Point(point.X+65,point.Y+75) ; graphics.DrawPolygon(pen, points2); /关?于原-点?对?称? if (checkO.Checked = true) Point points3 = new Point(point.X-50,point.Y+100), new Point(point.X-30,point.Y+60), new Point(point.X-65,point.Y+75) ; gra

8、phics.DrawPolygon(pen, points3); /关?于给?定直线?对?称? 实验内容1.设有一三角形ABC,其中三个顶点为A(5,10),B(1,2),C(8,5),如三角形的顶点A不变,将AB和AC边缩小一倍后,求缩小后的三角形对于直线-2x+4y+3=0的对称变换后的结果图。2将一四边形以原点为中心,以15为间隔旋转。实验结果1三角形缩放及对称2.四边形旋转实验总结(1)矩阵的乘法满足结合律,但不满足交换律。(2)用规范化齐次坐标表示的二维基本几何变换矩阵是一个33的方阵(3)上面讨论的五种基本变换(平移、比例、旋转、反射(对称)和错切)给出的都是点变换的公式,对于复杂对象(如线框模型),图形的变换实际上都可以通过点变换来完成。例如直线段的变换可以通过对两个顶点坐标进行变换,连接新顶点得到变换后的新直线;多边形的变换可以通过对每个顶点进行变换,连接新顶点得到变换后的新多边形来实现。指导教师意见签名: 年 月 日专心-专注-专业

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号