网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学 图形的几何变换的实现算法

PAGE  PAGE 6 实验二 图形的几何变换的实现算法 班级 08信计 学号 59 姓名 分数 一、实验目的和要求: 1、掌握而为图形的基本几何变换,如平移,旋转,缩放,对称,错切变换;。 2、掌握OpenGL中模型变换函数,实现简单的动画技术。 3、学习使用OpenGL生成基本图形。 4、巩固所学理论知识,加深对二维变换的理解,加深理解利用变换矩阵可由简单图形得到复杂图形。加深对变换矩阵算法的理解。 编制利用旋转变换绘制齿轮的程序。编程实现变换矩阵算法,绘制给出形体的三视图。调试程序及分析运行结果。要求每位学生独立完成该实验,并上传实验报告。 二、实验原理和内容: . 原理: 图像的几何变换包括:图像的空间平移、比例缩放、旋转、仿射变换和图像插值。 图像几何变换的实质:改变像素的空间位置,估算新空间位置上的像素值。 图像几何变换的一般表达式: ,其中,为变换后图像像素的笛卡尔坐标, 为原始图像中像素的笛卡尔坐标。这样就得到了原始图像与变换后图像的像素的对应关系。 平移变换:若图像像素点 平移到 ,则变换函数为 , ,写成矩阵表达式为: 其中,x0和y0分别为x和y的坐标平移量。 比例缩放:若图像坐标 缩放到( )倍,则变换函数为: 其中, 分别为x和y坐标的缩放因子,其大于1表示放大,小于1表示缩小。 旋转变换:将输入图像绕笛卡尔坐标系的原点逆时针旋转角度,则变换后图像坐标为: 内容: 1、对一个三角形分别实现平移,缩放旋转等变化。 2. 在方向、尺寸和形状方面的变换是用改变对象坐标描述的几何变换来完成的。基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、旋转、缩放、反射、错切等。 用直线命令画出一个齿(或六边形的一半)→利用旋转变换或对称变换矩阵 实现对其余部分的绘制→调试运行程序→输出图形→分析结果→结束。 编写三维变换算法程序→检查程序的正确性→分段调试程序→输入给出的三维形体各顶点的坐标→执行变换→对算法程序进行必要的调整→更换不同的形体数据继续变换→结束。 3.用实验一的方法解决这个问题,某三角形的三个点点坐标为{5.0.0.25.0},{150.0.25.0},{100.0.100.0},创建一个长度分别为600,600的窗口,窗口的左上角位于屏幕坐标(100,100)处。然后绘制一个由上述顶点所绘制的三角形,实现该三角形进行下列几何变换:首先使三角形沿着其中心的x轴和y轴方向缩小50%,然后沿着出示中心旋转90度;最后沿着y轴平移100个单位。 三、实验代码如下 1实验一 #include GL/glut,h #include stdlib.h 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); glVertex2f(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(); glLineStipple (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); glLoadIdentity (); if (w=h) gluOrtho2D(-50.0,50.0,-50.0*(GLfloat)h/(GLfloat)w,5

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档