计算机图形学--图形的几何变换的实现算法.doc

上传人:豆**** 文档编号:28559054 上传时间:2022-07-28 格式:DOC 页数:4 大小:65.50KB
返回 下载 相关 举报
计算机图形学--图形的几何变换的实现算法.doc_第1页
第1页 / 共4页
计算机图形学--图形的几何变换的实现算法.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《计算机图形学--图形的几何变换的实现算法.doc》由会员分享,可在线阅读,更多相关《计算机图形学--图形的几何变换的实现算法.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除实验二 图形的几何变换的实现算法班级 08信计 学号 59 姓名 分数 一、实验目的和要求:1、掌握而为图形的基本几何变换,如平移,旋转,缩放,对称,错切变换;。2、掌握OpenGL中模型变换函数,实现简单的动画技术。3、学习使用OpenGL生成基本图形。4、巩固所学理论知识,加深对二维变换的理解,加深理解利用变换矩阵可由简单图形得到复杂图形。加深对变换矩阵算法的理解。编制利用旋转变换绘制齿轮的程序。编程实现变换矩阵算法,绘制给出形体的三视图。调试程序及分析运行结果。要求每位学生独立完成该实验,并上传实验报告。二、实验原理和内容:. 原理:图像的

2、几何变换包括:图像的空间平移、比例缩放、旋转、仿射变换和图像插值。图像几何变换的实质:改变像素的空间位置,估算新空间位置上的像素值。图像几何变换的一般表达式: ,其中,为变换后图像像素的笛卡尔坐标, 为原始图像中像素的笛卡尔坐标。这样就得到了原始图像与变换后图像的像素的对应关系。平移变换:若图像像素点 平移到 ,则变换函数为 ,写成矩阵表达式为: 其中,x0和y0分别为x和y的坐标平移量。比例缩放:若图像坐标 缩放到( )倍,则变换函数为: 其中, 分别为x和y坐标的缩放因子,其大于1表示放大,小于1表示缩小。旋转变换:将输入图像绕笛卡尔坐标系的原点逆时针旋转角度,则变换后图像坐标为:内容:1

3、、对一个三角形分别实现平移,缩放旋转等变化。2. 在方向、尺寸和形状方面的变换是用改变对象坐标描述的几何变换来完成的。基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、旋转、缩放、反射、错切等。用直线命令画出一个齿(或六边形的一半)利用旋转变换或对称变换矩阵 实现对其余部分的绘制调试运行程序输出图形分析结果结束。编写三维变换算法程序检查程序的正确性分段调试程序输入给出的三维形体各顶点的坐标执行变换对算法程序进行必要的调整更换不同的形体数据继续变换结束。3用实验一的方法解决这个问题,某三角形的三个点点坐标为5.0.0.25.0,150.0.25.0,100.0.100.0,创建一个长

4、度分别为600,600的窗口,窗口的左上角位于屏幕坐标(100,100)处。然后绘制一个由上述顶点所绘制的三角形,实现该三角形进行下列几何变换:首先使三角形沿着其中心的x轴和y轴方向缩小50%,然后沿着出示中心旋转90度;最后沿着y轴平移100个单位。三、实验代码如下 1实验一#include #include Void init (void)glClearVolor (0.0,0.0,0.0,0.0);glShadeModel (GL-FLAT);Void draw_triangle(void)glBegin(GL_LINE_LOOP);glVertex2f(0.0,25.0);glVert

5、ex2f(25.0,-25.0);glVertex2f(-25.0,-25.0);glEnd();Void display(void)glClear (GL_COLOR_BUEFER_BIT);glColor3f(1.0,1.0,1.0);glLoadIdentity();glColor3f(1.0,1.0,1.0);draw_triangle();glEnable (GL_LINE_STIPPLE);glLineStipple (1,0xF0F0);glLoadIdentity();glTranslatef (-20.0,0.0,0.0);draw_triangle();glLineStip

6、ple (1,0xff00);glLoadIdentity ();glScalef (1.5,0.5,1.0);draw_triangle ();glLineStipple (1,0x8888);glLoadIdentity();glRotatef(90.0,0.0,0.0,1.0);draw_triangle ();glDisable (GL_LINE_STIPPLE);glFlush();Void reshape (int w,nt h)glViewport (0,0,(GLsizei) w,(GLsizei) h);glMatrixMode (GL_PROJECTION);glLoadI

7、dentity ();if (w=h)gluOrtho2D(-50.0,50.0,-50.0*(GLfloat)h/(GLfloat)w,50.0*(GLfloat)h/(GLfloat)w);glMatrixMode(GL_MODELVIEW);int main (int argc,char*argv)glutInit(&argc,argv);glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);glutInitWindowSize (500,500);glutInitWindowPosition (100,100);glutCreatWindow (ar

8、gv0);init ();glutDisplayFunc (display);glutReshapeFunc (reshape);glutMainLoop();return 0;实验结果如下2实验二代码#include#includeint a144=30,0,0,1,30,40,0,1,0,40,0,1,0,40,10,1,0,30,30,1,0,0,30,1,30,0,30,1,30,10,30,1,10,10,30,1,10,30,30,1,10,40,10,1,10,10,10,1,30,10,10,1,30,40,10,1;float t44,p144;void a400()int

9、i,j;for(i=0;i4;i+)for(j=0;j4;j+)tij=0;void a500() int k,i,j;for(i=0;i14;i+)for(j=0;j4;j+)pij=0;for(k=0;k4;k+)pij=pij+aik*tkj;pi0=pi0+280;pi1=-pi1+180;setcolor(9);moveto(p00,p01);for(i=0;i14;i+)lineto(pi0,pi1);line(p60,p61,p00,p01);line(p70,p71,p120,p121);line(p80,p81,p110,p111);line(p90,p91,p40,p41)

10、;line(p100,p101,p30,p31);line(p130,p131,p100,p101);line(p10,p11,p130,p131);getch();main()int driver,mode,i,j;driver=DETECT;initgraph(&driver,&mode,d:tc);setbkcolor(3);a400();t00=0.7071*3;t01=-0.4082*3;t10=-0.7071*3;t11=-0.4082*3;t21=0.8165*3;t33=1;a500();closegraph();实验结果实验三结果三、实验结果分析. 1、该程序实现了而为图形的简单几何变换,包括平移,缩放旋转等。 2、平移变换时最简单的变换,错切变换实际上是用比例因子乘对象的每一坐标和增加位移值。3、上面所讨论的图形变换时相对于坐标原点或坐标轴来进行的。实际中,常常需要相对于人一点或任一轴来进行变换。【精品文档】第 4 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁