计算机图形学实验报告3.doc

计算机图形学实验报告3.doc

ID:61835617

大小:62.00 KB

页数:6页

时间:2021-03-23

计算机图形学实验报告3.doc_第1页
计算机图形学实验报告3.doc_第2页
计算机图形学实验报告3.doc_第3页
计算机图形学实验报告3.doc_第4页
计算机图形学实验报告3.doc_第5页
资源描述:

《计算机图形学实验报告3.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学实验报告实验名称二维图形的几何变换评分实验日期2012年5月24日指导教师刘长松姓名专业班级学号一、实验目的1、复习不同的二维坐标变换公式。2、掌握二维坐标变换公式的使用方法。3、对二维坐标组合变换的灵活运用。二、实验要求1、在屏幕上绘制出较简单的几何图形。2、对1的图形进行平移变换,绘制出变换后的几何图形,并在下边标注出实施x,y各多少的平称坐标变换。3、对1的图形进行旋转变换,绘制出变换后的几何图形,并在下边标注出实施多少度的旋转坐标变换。4、对1的图形进行对称变换,绘制出变换后的几何图形,并在下边标注出实施对什么坐标进行的对称变换。5、对1的图形进行错切

2、变换,绘制出变换后的几何图形,并在下边标注出实施对何种坐标进行的错切变换。6、对1的图形进行比例变换,绘制出变换后的几何图形,并在下边标注出实施的多少比例坐标变换。7、为了进行比较,适当选择坐标,可将原图(变换前)及经过不同变换后的图形绘制在同一个屏幕上,设置不同的线形或颜色加以区分各种变换。三、关键算法及实现原理1、二维图形的变换实际上是一个变换矩阵,平面图形是由若干个二维点(xi,yi)组成,经过变换后的二维点(x’i,y’i),其变换公式为:对应于不同的变换,都是用矩阵乘法来计算坐标,只需改变变换矩阵即可。因此对每一种坐标变换编成一个子程序。2、编程时的技巧用数组将二维图

3、形的特征坐标点(顶点)保存,将由特征坐标点(顶点)绘制出二维图形的命令编一个绘图子程序,调用绘图子程序绘制出变换以前的图形,根据不同的两维几何变换,选用相应二维坐标变换公式(调用相应的子程序)将二维坐标进行坐标变换;再调用绘图子程序将变换后的坐标值在屏幕上绘制变换后的几何将图形,可选用不同的颜来区分各种不同几何变换的图形。四、程序调试中的问题在调试的过程中,经常出现一些字符的错误及语法方面的错误,都是由于粗心造成的。不过在静下心来,仔细检查反复查看也就解决了其中的问题。五、程序运行结果或数据六、实验收获及体会此次试验是关于二维图形的转换,通过这次实验掌握了二维坐标变换公式的使用

4、方法,知道了怎样对二维坐标组合变换的灵活运用。比起仅仅只在课堂上听些理论知识,更进一步了解了这方面的知识,受益匪浅。七、参考源程序(可附页)#include#include#include#includedoublexmax=639.0,ymax=399.0;doublef[3][3],xx,yy;intscx(doublexj){intx;x=(int)(xj+xmax/2);return(x);}intscy(doubleyj){inty;y=int(ymax-(int)(yj+ymax/2));ret

5、urn(y);}voidparallel(doubledx,doubledy){f[0][0]=1.0;f[0][1]=0.0;f[0][2]=0.0;f[1][0]=0.0;f[1][1]=1.0;f[1][2]=0.0;f[2][0]=dx;f[2][1]=dy;f[2][2]=1.0;}voidscale(doubles){f[0][0]=s;f[0][1]=0.0;f[0][2]=0.0;f[1][0]=0.0;f[1][1]=s;f[1][2]=0.0;f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0;}voidtaisho_y(){f[0][0

6、]=-1.0;f[0][1]=0.0;f[0][2]=0.0;f[1][0]=0.0;f[1][1]=1.0;f[1][2]=0.0;f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0;}voidaxis(){line(scx(0.0),scy(-ymax/2),scx(0),scy(ymax/2));line(scx(-xmax/2),scy(0.0),scx(xmax/2),scy(0.0));}voidtuoq(doublea,doubleb){f[0][0]=1.0;f[0][1]=b;f[0][2]=1.0;f[1][0]=a;f[1][1]=1.

7、0;f[1][2]=0.0;f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0;}doubleaffinex(doublex,doubley,doubled){xx=x*f[0][0]+y*f[1][0]+d*f[2][0];return(xx);}doubleaffiney(doublex,doubley,doubled){yy=x*f[0][1]+y*f[1][1]+d*f[2][1];return(yy);}voiddrawtu(doublex2[5],double

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。