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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

贵州大学实验报告学院:计算机科学与信息学院专业:计算机科学与技术班级:101姓名学号实验组6实验时间2013.5.9指导教师吴云成绩实验项目名称二维图形的几何变换实验目的掌握二维图形的基本几何变换:位置改变(平移、旋转)和变形(缩放、错切,反射、投影等)以及复合变换。实验要求1、在VS2010环境下利用C#编程实现画二维图形的几何变换。2、给出代码。3、附上结果截图。实验原理标准齐次坐标(x,y,1)二维变换的矩阵表示平移变换旋转变换放缩变换平移变换只改变图形的位置,不改变图形的大小。旋转变换不改变图形的形状放缩变换引起图形形状的变化。复合变换结果与变换的顺序有关(矩阵乘法不可交换)例:对一矩形先缩放S(2,0.5),再旋转R(p/6)。对称变换关于x轴的对称变换:关于y轴的对称变换:实验环境VS2010(C#)实验步骤1.掌握算法原理;2.依据算法,编写源程序并进行调试;下面缩放变化的算法实现:privatevoidTriangleChange()//缩?小?{Penpen=newPen(Color.Gray,2);intx,y;x=point.X+50;y=point.Y-100;Point[]points={newPoint(x,y),newPoint((x+point.X+10)/2,(y+point.Y-20)/2),newPoint((x+point.X+80)/2,(y+point.Y-50)/2)};graphics.DrawPolygon(pen,points);}下面是旋转变化的算法实现:privatevoidPolygonMove(){graphics.TranslateTransform(256,181);//将?中D点Ì?坐Á?标À¨º移°?动¡¥到Ì?你?要°a的Ì?点Ì?处ä|PointFp1,p2,p3,p4;p1=PointsChange(10,10);p2=PointsChange(30,100);p3=PointsChange(60,160);p4=PointsChange(80,90);for(inti=0;i360;i++){PointF[]points1={p1,p2,p3,p4};graphics.DrawPolygon(pen,points1);for(intj=0;j=360;j+=15){graphics.RotateTransform(15.0f);}}}privatePointFPointsChange(floatx,floaty){PointFpointC=newPointF();floatangle,langle;floatPI=3.1415926f;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));returnpointC;}下面是对称变换的实现代码:privatevoidTriangleMove()//对?称?{Penpen=newPen(Color.Gray,2);//关?于®¨²Y对?称?if(checkY.Checked==true){Point[]points1={newPoint(point.X-50,point.Y-100),newPoint(point.X-30,point.Y-60),newPoint(point.X-65,point.Y-75)};graphics.DrawPolygon(pen,points1);}//关?于®¨²X对?称?if(checkX.Checked==true){Point[]points2={newPoint(point.X+50,point.Y+100),newPoint(point.X+30,point.Y+60),newPoint(point.X+65,point.Y+75)};graphics.DrawPolygon(pen,points2);}//关?于®¨²原-点Ì?对?称?if(checkO.Checked==true){Point[]points3={newPoint(point.X-50,point.Y+100),newPoint(point.X-30,point.Y+60),newPoint(point.X-65,point.Y+75)};graphics.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)用规范化齐次坐标表示的二维基本几何变换矩阵是一个3×3的方阵(3)上面讨论的五种基本变换(平移、比例、旋转、反射(对称)和错切)给出的都是点变换的公式,对于复杂对象(如线框模型),图形的变换实际上都可以通过点变换来完成。例如直线段的变换可以通过对两个顶点坐标进行变换,连接新顶点得到变换后的新直线;多边形的变换可以通过对每个顶点进行变换,连接新顶点得到变换后的新多边形来实现。指导教师意见签名:年月日

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功