计算机图形学课程设计报告报告

上传人:壹****1 文档编号:508604580 上传时间:2022-07-28 格式:DOC 页数:19 大小:250.50KB
返回 下载 相关 举报
计算机图形学课程设计报告报告_第1页
第1页 / 共19页
计算机图形学课程设计报告报告_第2页
第2页 / 共19页
计算机图形学课程设计报告报告_第3页
第3页 / 共19页
计算机图形学课程设计报告报告_第4页
第4页 / 共19页
计算机图形学课程设计报告报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《计算机图形学课程设计报告报告》由会员分享,可在线阅读,更多相关《计算机图形学课程设计报告报告(19页珍藏版)》请在金锄头文库上搜索。

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

2、设计要求内容:(1)掌握动画基本原理;(2)实现平面几何变换;功能要求:(1)显示时钟三个时针,实现三根时针间的相互关系;(2)通过右键菜单切换时钟背景与时针颜色;1.4设计方案通过使用OpenGL提供的标准库函数,综合图形学Bresenham画线和画圆的算法,OpenGL颜色模型中颜色表示模式等实现指针式时钟运动,并通过点击右键菜单实习时钟背景与时针颜色的转换。根据Bresenham画线和画圆的算法,画出时钟的指针和表盘。再根据OpenGL颜色模型定义当前颜色。设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。专心-专注-专业

3、二、总体设计2.1、过程流程图 开始画线画椭圆画表盘及各指针预定义表盘、各指针的颜色右键设置秒针颜色菜单可以改变秒针颜色右键设置分针颜色菜单可以改变分针颜色右键设置时针颜色菜单可以改变时针颜色右键设置背景色菜单可以改变表盘颜色右键恢复菜单可以恢复表盘及各指针原来颜色结束2.2、椭圆的中点生成算法1、椭圆对称性质原理:(1)圆是满足x轴对称的,这样只需要计算原来的1/2点的位置;(2)圆是满足y轴对称的,这样只需要计算原来的1/2点的位置;通过上面分析可以得到实际上我们计算椭圆生成时候,只需要计算1/4个椭圆就可以实现对于所有点的生成了。2、中点椭圆算法内容:(1)输入椭圆的两个半径r1和r2,

4、并且输入椭圆的圆心。设置初始点(x0,y0)的位置为(0,r2);(2)计算区域1中央决策参数的初始值p = ry*ry - rx*rx*ry + 1/4*(rx*rx);(3)在区域1中的每个Xn为止,从n = 0 开始,直到|K|(斜率)小于-1时后结束;如果p 0 ,绘制下一个点(x+1,y),并且计算p = p + r2*r2*(3+2*x);如果P =0 ,绘制下一个点(x+1,y-1),并且计算p = p + r2*r2*(3+2*point.x) - 2*r1*r1*(y-1)(4)设置新的参数初始值;p = ry*ry(X0+1/2)*(X0+1/2) + rx*rx*(Y0-

5、1) - rx*rx*ry*ry;(5)在区域2中的每个Yn为止,从n = 0开始,直到y = 0时结束。如果P0的情况下,下一个目标点为(x,y-1),并且计算p = p - 2rx*rx*(Yn+1) + rx*rx;如果p=0的情况下,下一个目标点为(x+1,y-1),并且计算 p = p - 2rx*rx*Y(n+1) + 2ry*ry*(Xn+1)+rx*rx;(6)更具对称性原理计算其他3个象限的坐标。(7)急速拿出中心位置在(x1,y1)的位置x = x + x1; y = y + y1;2.3、直线的Bresenham算法原理这种生成直线的算法与数值微分法类似,每次迭代在增量最

6、大方向上均走一步,其方向由增量的正负而定;另一方向上是否也走,取决于计算出来的误差项,误差项所记录的方向同最大增量方向垂直。下面讨论误差项,如图1 所示。图1 误差项计算示意图设图1 中直线满足:0,即:0,所以X为最大增量方向,有-=1,故有每点的坐标计算: (4)因此直线上点的显示坐标为,round(),round()表示最靠近y的整数。从图1可以看出,对于计算出来的(,)点,的取之为;计算出来的( ,)点,的取值为。其根据就是因为更靠近,更靠近。图1 中A点为与的中心点,计算BC长度,若值大于0.5,说明在A点之上,应取,否则取值。设误差: (5) 当,B点在A点上方,有;当SelectObject(&Pen);CBrush brush(brushColor);pDC -SelectObject(&brush);/绘制钟面椭圆pDC-Ellipse(5,5,Rect.right-5,Rect.bottom-5);double Radians;/设置字体颜色为红色pDC-SetTextColor(RGB(255,0,0);for(i = 1;i = 12;i+)/格式化钟点值str.Format(%d,i);size = pD

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

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号