计算机图形学课程设计报告报告_第1页
计算机图形学课程设计报告报告_第2页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、设计内容与要求、设计题目算法实现时钟运动、总体目标和要求(1)目标:以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。(2)总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。(3)开发环境:ViusalC+、设计要求内容:(1)掌握动画基本原理;(2)实现平面几何变

2、换;功能要求:1)显示时钟三个时针,实现三根时针间的相互关系;(2)通过右键菜单切换时钟背景与时针颜色;设计方案通过使用OpenGL提供的标准库函数,综合图形学Bresenham画线和画圆的算法,OpenGL颜色模型中颜色表示模式等实现指针式时钟运动,并通过点击右键菜单实习时钟背景与时针颜色的转换。根据Bresenham画线和画圆的算法,画出时钟的指针和表盘。再根据OpenGL颜色模型定义当前颜色。设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。二、总体设计、过程流程图开始V7画线n、椭圆的中点生成算法1、椭圆对称性质原理:(

3、1) 圆是满足x轴对称的,这样只需要计算原来的1/2点的位置;(2) 圆是满足y轴对称的,这样只需要计算原来的1/2点的位置;通过上面分析可以得到实际上我们计算椭圆生成时候,只需要计算1/4个椭圆就可以实现对于所有点的生成了。2、中点椭圆算法内容:(1) 输入椭圆的两个半径r1和r2,并且输入椭圆的圆心。设置初始点(xO,yO)的位置为(0,;(2) 计算区域1中央决策参数的初始值p=ry*ry-rx*rx*ry+1/4*(rx*rx);(3) 在区域1中的每个Xn为止,从n=0开始,直到|K|(斜率)小于-1时后结束;<1>如果p<0,绘制下一个点(x+1,y),并且计算p

4、=p+r2*r2*(3+2*x);<2>如果P>=0,绘制下一个点(x+1,y-1),并且计算p=p+r2*r2*(3+2*-2*r1*r1*(y-1)(4) 设置新的参数初始值;p=ry*ry(X0+1/2)*(X0+1/2)+rx*rx*(Y0-1)-rx*rx*ry*ry;(5) 在区域2中的每个Yn为止,从n=0开始,直到y=0时结束。<1>如果P>0的情况下,下一个目标点为(x,y-1),并且计算p=p-2rx*rx*(Yn+1)+rx*rx;<2>如果pv=O的情况下,下一个目标点为(x+1,y-1),并且计算p=p-2rx*rx*Y

5、(n+1)+2ry*ry*(Xn+1)+rx*rx;(6) 更具对称性原理计算其他3个象限的坐标。(7) 急速拿出中心位置在(x1,y1)的位置x=x+x1;y=y+y1;、直线的Bresenham算法原理这种生成直线的算法与数值微分法类似,每次迭代在增量最大方向上均走一步,其方向由增量的正负而定;另一方向上是否也走,取决于计算出来的误差项,误差项所记录的方向同最大增量方向垂直。下面讨论误差项,如图1所示。1设图1中直线满足:0x,即:0m1,所以X为最大增yiiyim量方向,有xi1-xi=1,故有每点的坐标计算:x1*1(4)因此直线上点的显示坐标为xi,round(yi),round(y

6、i)表示最靠近y的整数。从图1可以看出,对于计算出来的(',yi)点,yi的取之为yi,r;计算出来的(xi1,yi1)点,yi1的取值为yi1,r。其根据就是因为yi更靠近y,r,yi1更靠近yi1,r。图1中A点为yi1,r与儿的中心点,计算BC长度,若值大于,说明在A点之上,应取yi1,r,否则取yi,r值。设误差:(xi1)yi1yi,r0.5上方,有yi1,ryi,r1;当(xi1)<0,由公式(4)(5)得:(xi2)yi2yi1,r0.5yi1myi1,r5)当(xi1)0,B点在A点B点在A点下方,有八r儿。0.5yi1yi,r1m0.5(xi1)0yi1yi,r

7、m0.5(xi1)0(xi1)m1(xi1)0(xi1m)(xi1)0i1(6)、图形变换基本原理1、平移变换平移变换函数如下:voidglTranslatefd(TYPEx,TYPEy,TYPEz);三个函数参数就是目标分别沿三个轴向平移的偏移量。这个函数,时,表表示用于这三个偏移量生成的矩阵乘以当前矩阵。当参数是示对函数glTranslate*()的操作是单位矩阵,也就是对物体没有影响。2、旋转变换旋转变换函数如下:VoidglRotafdTYPEangle,TYPEx,TYPEy,TYPEz);函数中第一个参数是表示目标沿从点(x,y,z)到原点方向逆时针旋转的角度,后三个参数是旋转的方

8、向点坐标。这个函数表示用这四个参数生成的矩阵乘以当前矩阵。当角度参数是时,表示对物体没有影响。3、比例变换比例变换函数如下:VoidglScalefd(TYPEx,TYPEy,TYPEz);单个函数参数值就是目标分别沿三个轴方向缩放的比例因子。这个函数表示用这三个比例因子生成的矩阵乘以当前矩阵。这个函数能完成沿相应的轴对目标进行拉伸、压缩和反射三项功能。以参数x为例,若当x大于时,表示沿x方向拉伸目标;若x小于,表示沿x轴方向收缩目标;若x=表示沿x轴反射目标。其中参数为负值时表示对目标进行相应轴的反射变换。三、详细设计、主程序代码及解释#include""#include""#include""#include""#include""#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论