计算机图形学课程设计任务书[1]

合集下载

计算机图形学的课程设计

计算机图形学的课程设计

计算机图形学课程设计设计题目:画三次Bezier曲线和三次B样条曲线班级:姓名:学号:一、总体目标和要求1 课程设计目的本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。

通过本课程设计,使自己了解计算机图形学的有关原理、算法及系统,掌握基本图形显示程序设计方法,及二维和三维图形变换程序设计方法,为进一步学习计算机辅助设计方面的技术知识打下基础。

2 目标以图形学算法为目标,深入研究。

续而策划设计实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面做出评价和改进意见。

通过完成一个完整程序,经历策划、设计、开发、总结。

达到:(1)巩固和实践计算机图形学课程中的理论和算法;(2)学习表现计算机图形学算法的技巧;(3)培养认真学习积极探索的精神。

3总体要求策划、设计并实现一个能够充分表现图形学算法的系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。

二、内容与要求1设计题目画三次Bezier曲线和三次B样条曲线。

2设计要求利用计算机图形学原理画出三次Bezier曲线和三次B样条曲线。

三、算法描述(1)画三次Bezier曲线根据Q(t)=∑P i•B• C i n t i(1-t)n-i(∑中的n=3)并且 C i nBEZ 0,3BEZ 1,3(u)=3u(1-u)(1-u)BEZ2,3(u)=3uu(1-u)BEZ3,3(u)=3uuu三次Bezier函数可以写成P(u)=[u3 u2 u 1]×M×[a b c d] 其中M=[ -1 3 -3 1 ]3 -6 -3 0-3 3 0 01 0 0 0i=0(2)画三次B样条曲线Q i,3(t)=∑P i+l F l,3(t)= P i F0,3(t)+ P i+1 F1,3(t)+ P i+2 F2,3(t)+ P i+ 3 F3,3(t)(其中∑中的n=3)因为四个调和函数F0,3(t)、F1,3(t)、F2,3(t)和F3,3(t) 已知(参看公式7-5-3)因此只要给出四个控制点的位置矢量的坐标,当t在[0,1]范围内取离散地取100个点时(dt=0.01),分别求出每一个曲线上点,相邻点用直线段连接起来,就可以得到相应的B样条曲线。

计算机图形学课程设计

计算机图形学课程设计

课程设计报告课程名称计算机图形学课题名称飘扬的旗帜专业计算机科学与技术班级计算机0502学号200503010203姓名蒋维琴指导教师刘长松2008年7 月10 日湖南工程学院课程设计任务书课程名称计算机图形学课题飘扬的旗帜专业班级计算机0502学生姓名蒋维琴学号200503010203指导老师刘长松审批任务书下达日期2008年6 月28 日任务完成日期2008 年7 月10 日一、设计内容与设计要求1.设计内容:飘扬的旗帜,要求该旗帜中有几何图形,旗帜不停地飘动,同时可断地移动,移动的路线可以随机,要求按ESC停止转动,按↑加快速度,按↓减慢速度。

2.设计要求:在屏幕上连续出现飘扬的旗帜,同时不断地在上、下、左、右移动;按↑加快移动速度,按↓减慢移动速度。

3.算法提示:可用自由曲线(Bezier曲线、或B样条曲线)或自由曲面(Bezier曲面、或B样条曲面)来设计旗帜的形状,并将坐标用数组保存;不断改变曲线或曲面的坐标值,可得到不同的曲线形状。

对三维曲面,还可用坐标变换来改变曲线的形状;对移动的路线可以选择一条规则曲线,用随机函数来产生它的起始值和幅度。

当旗帜移动到屏幕的两端时又产生一条新的确良曲线。

这样屏幕上用将产生了不同的移动曲线。

二、进度安排第18 周星期五8 时00分——12时00分星期五14 时30分——18时30分星期六8 时00分——12时00分附:课程设计报告装订顺序:封面、任务书、目录、正文、附件(A4大小的图纸及程序清单)、评分。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。

正文总字数要求在5000字以上(不含程序原代码)。

目录一、主要功能 (1)二、功能模块的划分 (1)2.1画旗杆 (1)2.2画旗面 (1)2.3画五角星 (1)2.4飘动速度 (1)三、主要功能的实现 (2)3.1总体流程图 (2)3.2画旗面 (2)3.3画五角星 (3)四、程序调试 (4)4.1调试问题 (4)4.2调试结果 (5)五、总结 (5)六、附件: (6)源程序清单 (6)计算机科学与技术系课程设计评分表 (10)一、主要功能画一面红旗,包括旗杆、旗面、五角星。

计算机图形学课程设计书

计算机图形学课程设计书

课程设计(论文)任务书理学院信息与计算科学专业2015-1班一、课程设计(论文)题目:图像融合的程序设计二、课程设计(论文)工作:自2018 年 1 月10 日起至2018 年 1 月12日止三、课程设计(论文) 地点:2-201四、课程设计(论文)内容要求:1.本课程设计的目的(1)熟悉Delphi7的使用,理论与实际应用相结合,养成良好的程序设计技能;(2)了解并掌握图像融合的各种实现方法,具备初步的独立分析和设计能力;(3)初步掌握开发过程中的问题分析,程序设计,代码编写、测试等基本方法;(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(5)在实践中认识、学习计算机图形学相关知识。

2.课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行程序需求分析;(2)对程序进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码;(4)程序组装,测试、完善系统。

2)创新要求:在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。

3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:(2)Steve Cunningham,《计算机图形学》,机械工业出版社(3)5)课程设计进度安排内容天数地点程序总体设计 1 实验室软件设计及调试 1 实验室答辩及撰写报告 1 实验室、图书馆学生签名:2018年1月12日摘要图像融合是图像处理中重要部分,能够协同利用同一场景的多种传感器图像信息,输出一幅更适合于人类视觉感知或计算机进一步处理与分析的融合图像。

它可明显的改善单一传感器的不足,提高结果图像的清晰度及信息包含量,有利于更为准确、更为可靠、更为全面地获取目标或场景的信息。

图像融合主要应用于军事国防上、遥感方面、医学图像处理、机器人、安全和监控、生物监测等领域。

计算机图形学任务书

计算机图形学任务书

《计算机图形学》任务书一.课程设计的目的通过课程设计,使学生具备通过具体的平台实现图形算法的设计、编程与调试的能力,完成对实验结果分析、总结及撰写技术报告的能力。

二.课程设计的要求课程设计时间为第17周,地点:计412室,要求进实验室调试时必须有理论设计,调试通过后请辅导老师验收。

课程设计分组进行,一人一组,设计完成后每人提交一份课程设计报告,没有交报告的同学不予评定成绩。

本次课程设计备选题目有30个,每人选择一个提目,选定后不能更改。

每个题目的基本要求必须完成,其他可根据自身情况选做。

三.课程设计报告要求1.设计概述设计题目、设计要求、设计方案2.软件设计软件流程框图3.调试后的正确程序清单4.设计总结分析5.完整的课程设计报告【课程设计报告书内容要求】每一小组要上交一份完整的设计方案,统一用A4纸打印,内容包括:(1)实验报告封面(设计题目、小组成员)(2)设计题目(3)设计方案(4)程序流程图(包括各个子系统和子过程的程序流程)(5)程序清单,要有适当的注释(6)程序运行结果分析(7)系统不足及改进方案四.课程设计选题(任选一题)1、逐点比较法生成直线内容:(1)推导出该算法法绘制直线的原理;(2)根据算法原理,设计相应算法;(3)编写该算法的程序并实现;功能要求:(1)要求有两种方式进行输出:1)模拟算法输出;2)直接生成输出。

(2)采用屏幕或键盘输入坐标点;2、椭圆Bresenham算法内容:(1)推导出Bresenham法绘制椭圆的算法原理;(2)根据算法原理,设计相应算法;(3)编写绘制完整椭圆的中点或Bresenham算法程序;功能要求:(1)要求有两种输入方式:根据输入点来生成椭圆并输出椭圆的长短轴;输入椭圆的长短轴来生成椭圆;(2)椭圆的颜色为红色;3、多边形有效边表填充算法内容:(1)设计边表与活性链表数据结构;(2)根据多边形有效边表填充算法原理,设计相应算法;功能要求:(1)要求根据鼠标输入点来生成多边形;(2)通过右键菜单显示填充效果,右键菜单有两个选项:未填充与填充;(3)参考文[1]-6;4、区域四向种子点填充算法内容:(1)掌握四向邻接点的访问方法;(2)掌握堆栈的编程操作;(3)掌握种子填充算法原理;功能要求:(1)区域为多边形,要求根据鼠标输入点来生成多边形;(2)通过右键菜单实现填充效果;(3)参考文[1]-8;5.影线填充算法内容:(1)掌握影线填充算法原理;(2)掌握边界数据的组织方法;(3)掌握复合域转换为单值域的方法;(4)掌握影线和边界求交的计算方法;功能要求:(1)要求根据输入屏幕点生成多边形区域边界;(2)通过键盘按键实现填充一组斜线;6、直线快速裁剪算法内容:(1)掌握窗口相对于直线的位置判断;(2)掌握直线快速裁剪的原理;(3)实现点一直线裁剪和多条直线直线裁剪;功能要求:(1)要求根据输入两点来生成直线;(2)通过键盘按键实现裁剪;7.多边形裁剪算法内容:(1)掌握多边形算法原理;(2)掌握直线和窗口相交的判断条件;(3)掌握直线和窗口交点处的参数值计算方法;功能要求:(1)要求根据输入屏幕点生成多边形和窗口;(2)通过键盘按键实现裁剪;8. 三视图算法内容:(1)掌握三视图生成原理;(2)掌握主视图、俯视图和侧视图变换矩阵;功能要求:(1)缺省状态为正三棱柱的三维立体图;(2)通过右键菜单显示三视图,右键菜单有两个选项:立体图与三视图;9. 双三次Bezier曲面算法内容:(1)掌握双三次Bezier曲面定义;(2)实现矩阵相关运算;功能要求:(1)给定16个三维控制点如下:P00(200,20,0),P01(150,0,100),P02(50,-130,100),P03(0,-250,50);P10(150,100,100),P11(100,30,100),P12(50,-40,100),P13(0,-110,100);P20(140,280,90),P21(80,110,120),P22(30,30,130),P23(-50,-100,150);P30(150,350,30),P31(50,200,150),P32(0,50,200),P33(-70,0,100);(2)实现键盘控制曲面旋转效果10.立方体背面剔除消隐算法内容:(1)掌握背面剔除消隐算法原理;(2)实现矢量点积与叉积运算;(3)透视投影变换功能要求:(1)绘制立方体线框模型的透视投影图,使用背面剔除算法实现动态消隐;(2)通过右键菜单显示消隐效果,右键菜单有两个选项:未消隐与消隐;(3)使用键盘的上下左右控制键旋转消隐前后的立方体;(4)单击左键增加视距,右击缩短视距;11. 球体背面剔除消隐算法内容:(1)掌握背面剔除消隐算法原理;(2)实现矢量点积与叉积运算;(3)透视投影变换(4)曲面体经纬线划分方法功能要求:(1)绘制球体线框模型的透视投影图,使用背面剔除算法实现动态消隐;(2)通过右键菜单显示消隐效果,右键菜单有两个选项:未消隐与消隐;(3)使用键盘的上下左右控制键旋转消隐前后的球体;(4)单击左键增加视距,右击缩短视距;12.立方体动态Z-Buffer隐面算法内容:(1)掌握Z-Buffer消隐算法原理;(2)像素点动态深度计算;功能要求:(1)绘制立方体,使用Z-Buffer消隐算法实现消隐;(2)使用键盘的上下左右控制键旋转消隐前后的立方体;13.参数法绘制凸多面体动态图形内容:(1)掌握参数法绘制三维图形的方法;(2)掌握立体的数据结构形式并合理组织数据;功能要求:(1)绘制凸多面体(简易房子)的动态消隐图形;(2)使用键盘的上下左右控制键旋转消隐前后的立方体;14.明暗处理立方体算法-Gouraud明暗处理内容:(1)掌握双线性光强插值方法;(2)根据有效边表法绘制立方体每个面;功能要求:(1)绘制立方体,使用Gouraud明暗处理填充立方体各个面;(2)使用键盘的上下左右控制键旋转立方体;15.明暗处理立方体算法-Phong明暗处理内容:(1)掌握双线性法向量插值方法;(2)根据有效边表法绘制立方体每个面;功能要求:(1)绘制立方体,使用Phong明暗处理填充立方体各个面;(2)使用键盘的上下左右控制键旋转立方体;16.球的光照模型算法内容:(1)掌握简单光照模型计算;(2)球体绘制方法;功能要求:(1)绘制球体,给球体施加环境光、漫反射光和镜面反射光;(2)通过右键菜单控制显示效果,右键菜单安排如下:17.立方体纹理映射算法内容:(1)国际象棋棋盘纹理的制作;(2)立方体表面纹理映射方法;功能要求:(1)绘制立方体,给立方体添加国际象棋棋盘纹理;(2)使用键盘的上下左右控制键旋转立方体:18.编程实现时钟运动内容:(1)掌握动画基本原理;(2)实现平面几何变换;功能要求:(1)显示时钟三个时针,实现三根时针间的相互关系;(2)通过右键菜单切换时钟背景与时针颜色;19.实现皮球运动动画内容:(1)掌握动画基本原理;(2)圆的绘制;功能要求:圆皮球从某竖直高度以横向速度抛出,落地,弹起,最终静止。

计算机图形学课设报告

计算机图形学课设报告

计算机图形学课程设计报告专业:班级:学号:姓名:指导教师:[设计题目] :计算机图形学设计与实现[设计地点]: 10教4楼[设计人员]:[设计任务] :1:生成直线的DDA算法2:生成直线的中点算法3:生成圆的中点算法4:生成圆的正负法算法5:生成椭圆的中点算法6:扫描转化为矩形7:种子填充算法8:平移变换9:放缩变换10:直线段裁剪二维线画图元的生成1.1. 生成直线段的DDA 算法 基本原理 扫描转换直线段所谓扫描转换直线段就是计算出落在直线段上或充分靠近它的一串像素,并以此像素集近似替代原连续直线段在屏幕上显示的过程。

生成直线段的DDA 算法求表示直线段的像素集的最简单方法是利用直线方程直接计算。

设直线方程为y=m ·x+B DDA 算法描述:(1) 对给定端点的直线段以一个单位像素为分割区间(2) 根据直线方程得到直线段上对应于横坐标的点的纵坐标,于是得到一系列点列(3) 计算出的纵坐标可能是浮点数,并其四舍五入取整 (4) 描点画图 其中,用公式11(1)i i i i i y mx B m x B mx B m y m ++=+=++=++=+我们就从i y 直接得到1i y +,而不是由1i x +通过直线方程来计算1i y +,由此便消除了算法中的乘法。

递推公式的初值为:00(,)(0,0)x y x y =主要程序代码:void dda_line(int x1,int y1,int x2,int y2,int color) /*画直线*//DDA 算法 {int x;float dx,dy,y,m; if(x1==x2) {for(y=y1;y<=y2;y++) putpixel(x1,y,color); }dx=x2-x1; dy=y2-y1; m=dy/dx;y=y1;for(x=x1;x<=x2;x++) {putpixel(x,(int)(y+0.5),color); y+=m; } }运行效果:1. 2. 生成直线段的中点算法 基本原理假定直线段的斜率m ∈[0,1],并且左下方的端点为,0(0,0)P x y ,右上方的端点为1(1,1)P x y 。

计算机图形学 课程设计

计算机图形学 课程设计

2、gluSphere(quadric, 0.45f, 40, 40)函数是在原点绘制图形,经过 glTranslatef* 和 glRotatef*平移和旋转可以随意改变球体位置:
glRotatef(-90.0f, 1.0f, 0.0f, 0.0f); // 将坐标系绕 X 轴旋转-90 度 glTranslatef(1.7f, 0.0f, 0.0f); // 将坐标系右移 1.7f
8、建立一个地球公转轨道,调用函数 glTranslatef*把球体平移一定距离,使其在自
4
己的轨道上运行。同时为了使月球跟随地球,glRotatef(fEarthOrbit , 0.0f, 1.0f, 0.0f); 将坐标系绕 Y 轴旋转地球公转的角度,控制月亮跟随地球,用函数 glTranslatef*平移使月 球轨道在地球周围而不与地球重叠。
5
参数代表要操作的目标,GL_PROJECTION 是对投影矩阵操作,GL_MODELVIEW 是对模型视景矩 阵操作,GL_TEXTURE 是对纹理矩阵进行随后的操作。 13、glutIdleFunc(void (*func)(void))在 glutIdleFunc(void (*func)(void))回调函数 中指定一个函数,如果不存在其他尚未完成的事件(例如,当事件循环处于空闲的时候), 就执行这个函数。这个回调函数接受一个函数指针作为它的唯一参数。如果向它传递 NULL(0),就相当于禁用这个函数。glutMainLoop 进入 GLUT 事件处理循环。在一个 GLUT 程 序中,这个例程被调用一次 。一旦被调用,这个程序将永远不会返回 无限循环。它将调用 必要的任何已注册的回调。程序最后调用这个函数,让程序循环执行下去,使运动继续下去。
9、OpenGl 把三维坐标中的球体绘制到而为坐标屏幕,绘制的顺序是按代码的顺序来进 行的。因此后绘制的物体会遮住先绘制的物体,既使后绘制的物体在先绘制的物体后面也是 一样,使用深度测试可以解决这个问题。使用方法是:以 GL_DEPTH_TEST 为参数调用 glEnable 函数,启动深度测试。在必要时(通常是每次绘制画面开始时)清空深度缓冲,即: glClear(GL_DEPTH_BUFFER_BIT) , 其 中 glClear(GL_COLOR_BUFFER_BIT) 与 glClear(GL_DEPTH_BUFFER_BIT) 可 以 合 并 写 为 glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT),且后者运行速度比前者快。

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

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

目录1、课程设计目的 (1)2、系统功能介绍 (1)3、程序代码和分析 (2)4、总结 (4)5、参考文献 (4)6.源程序 (4)计算机图形学课程设计报告1.课程设计目的本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。

在学期期末时按课程要求进行运动,提高学生对计算机图形学知识的了解与运用技巧同时通过此次课程设计提高动手实践能力与学习分析能力这就是本次的课程设计的目的。

2.课程设计描述及要求此次课程设计的课题为利用VC++6.0和插件OPENGL制作三维模型。

本设计主要通过建立MFC工程,在工程里建立一个三维模型然后再进行旋转,飞行等运动,来建立一个动态的三维模型。

主要步骤如下:1:工程的建立2:三维模型的建立和映射3:三维模型的运动一:工程的建立1:系统配置。

先对机子安装VC++6.0.在建立工程前,本实验需要添加OPENGL 插件,故需要在Windows环境下安装GLUT步骤如下:1、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。

把解压得到的glut.h放到这个文件夹。

3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。

4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。

(典型的位置为:C:\Windows\System32)然后建立一个OpenGL工程测试这里以VisualStudio2005为例。

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

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

源程序 // Yzg20166989View.cpp : implementation of the
CYzg20166989View class //
#include "stdafx.h" #include "Yzg20166989.h"
#include "math.h"
#include "Yzg20166989Doc.h" #include "Yzg20166989View.h"
设计目的 培养对图形建模、变换、投影、消隐、光照原理的理解和应用。 培养图形类的编程能力。 培养计算机图形学应用软件开发的能力。
设计要求 深入研究计算机图形学的生成原理,设计算法实现具体的类。 1.构建基础类 实现 CP2 类绘制二维点;实现 CP3 类绘制三维点;实现 CRGB 类处理 RGB 颜色;实现 CVector 类处理矢量。 2.构建直线类 实现 CLine 类绘制任意斜率的直线、实现 CALine 类绘制任意 斜率的反走样直线、实现 CCLine 类绘制任意斜率的颜色渐变直线、 实现 CACLine 类绘制任意斜率的反走样颜色渐变直线。 3.构建变换类 实现 CTransForm 完成二维和三维图形变换。 4.构建填充类 实现 CFill 类使用有效边表算法填充多边形、实现 CZBuffer 类进行深度缓冲消隐,并使用 Gouraud 和 Phong 明暗处理填充图形 面片。 5.构建光照类
CYzg20166989View::CYzg20166989View()
{ // TODO: add construction code here
}
CYzg20166989View::~CYzg20166989View() { }

计算机图形学课程设计

计算机图形学课程设计

河南理工大学万方科技学院课程设计报告课程名称:计算机图形学设计题目:直线快速裁剪算法组成员:专业班级:08—计算机科学与技术—01指导老师:2011-6-12目录第一章前言 (1)第二章设计内容与要求 (1)2.1 总体目标和要求 (1)2.2 内容与要求 (2)第三章总体设计 (2)3.1 矩形裁剪窗口的设计 (2)3.2 个编辑文本框的设计 (2)3.3 四个按钮的设计 (2)3.4 四个标签的设计 (3)3.5 直线段的生成算法的设计 (3)3.6直线段裁剪 (3)第四章详细设计 (4)4.1 矩形裁剪窗口的设计 (4)4.2 个编辑文本框的设计 (5)4.3 四个按钮的设计 (5)4.4 四个标签的设计 (5)4.5 直线段的生成算法的设计 (5)4.6直线段裁剪 (8)第五章功能实现 (12)5.1直线的生成 (12)5.2直线的裁剪 (13)5.3矩形窗口的大小变换 (14)第六章总结 (15)参考文献: (15)附录源代码: (16)第一章前言计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。

简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。

计算机图形学的研究内容非常广泛,像图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、非真实感绘制,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。

经过40 多年的发展, 计算机图形学已成为计算机科学中, 最为活跃的分支之一, 并得到广泛的应用。

其中最重要的莫过于计算机辅助设计与制造(Computer Aided Design / Computer Aided Manufacture),例如AUTOCAD 2008,Maya8.5,3ds Max 9都是这方面最领先的图形学软件。

计算机图形学课程设计-孟芸

计算机图形学课程设计-孟芸

《计算机图形学》课程设计教学大纲作者:孟芸审核:李印清课程代码:课程名称:《计算机图形学》课程设计英文名称:Course Exercise in Computer Graphics课程类型: (选修课、必修课、公共选修课、专业基础课、专业选修课等等)总学时:1周讲课学时:实验学时:学分:1分一、课程说明(一)课程设计书写规范1.题目内容及要求2.设计思路---工作原理图、功能规划3.具体实现---类设计、功能设计、关键代码4.运行调试与分析讨论---给出运行屏幕截图,分析运行结果,改进想法。

5.设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。

6.参考文献(必须按标准格式列出)7.报告按规定排版打印,要求装订平整,否则要求返工;(二)课程设计报告的装订顺序封面---任务书---中文摘要---目录----绪论----正文----设计小结----参考文献----附录等(三)课程实际时间10周-16周(四)要求课程设计论文页数控制在20页以内。

每个题目每班只可以允许一组人选(第一题除外)。

(五)适用专业计算机科学技术、网络工程二、题目要求:(一)简易图形编辑软件(1~4人)(可以有四组人选则)1.编写一个简易图形编辑软件,可以是一个应用程序,也可以是基于WEB环境,主要功能有:2.具有菜单,通过菜单执行各种操作;3.采用图元的扫描转换算法绘制各种基本图元,如直线、圆、圆弧、多边形;4.实现图形的平移、缩放、旋转、对称、错切及组合变化;5.能够拾取图形,并修改所选的图形的颜色、线型等;6.能够采用各种算法填充多边形、圆、扇形区域;7.能够采用各种算法实现直线裁剪或多边形裁剪;8.能够绘制各种样条曲线。

9.能够绘制三维图形的投影图,包括:三视图、轴侧图、透视图;10.能够绘制分形图形,例如,Koch 雪花曲线、Bracketed L系统等;11.能够实现重做与撤销;12.能够保存和打开图形文件。

计算机图形学课程设计

计算机图形学课程设计

目录一、课程设计任务及要求 (1)二、需求分析 (1)2.1 设计目标 (1)2.2 设计环境 (2)2.2.1 VC++6.0 (2)2.2.2 MFC (2)2.3 设计题目及要求 (2)三、总体设计 (3)3.1 绘图 (3)3.1.1 直线 (3)3.1.2 正三角形 (4)3.1.3 矩形 (4)3.2 变换类型 (5)3.2.1 平移变换 (5)3.2.2 比例变换 (6)3.2.3 旋转变换 (6)3.2.4 反射变换 (6)3.2.5 错切变换 (7)3.3 复位 (7)四、详细设计 (8)4.1 平移变换 (8)4.1.1 向左 (8)4.1.2 向右 (8)4.1.3 向上 (9)4.1.4 向下 (10)4.2 比例变换 (11)4.2.1 放大 (11)4.2.2 缩小 (12)4.3 旋转变换 (12)4.3.1 逆时针 (12)4.3.2 顺时针 (13)4.4 反射控制 (14)4.4.1 X轴 (14)4.4.2 Y轴 (15)4.4.3 原点 (15)4.5 错切变换 (16)4.5.1 X正方向 (16)4.5.2 X负方向 (17)4.5.3 Y正方向 (17)4.5.4 Y负方向 (18)五、运行调试与分析讨论 (20)六、设计体会与小结 (20)七、参考文献 (21)计算机图形学课程设计一、课程设计任务及要求利用VC++设计实现二维图形变换:1、学会使用VC++和MFC编写实现图形的绘制变换,需包括直线、正三角形、矩形的绘制和变换2、建立图形信息输入窗口,来输入图形的几何信息、拓扑信息和属性信息等3、建立图形变换参数输入窗口,来输入图形的基本几何变换参数4、熟练掌握平移变化、比例变换、、旋转变化、反射变换和错切变换。

5、其他功能:如复位、退出功能。

二、需求分析计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。

计算机图形学课程设计

计算机图形学课程设计

程序原代码: 程序原代码:
/*显示一个立方体*/ #include <dos.h> #include <math.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <graphics.h> #define PI 3.1415926 /*定义按键*/ #define ESC 0x11b /*以下 4 个键,依次是上 下 左 右*/ #define X_axis_clkwise 0x4800 #define X_axis_Cntclkwise 0x5000 #define Y_axis_clkwise 0x4b00 #define Y_axis_Cntclkwise 0x4d00 /*以下 2 个键,依次是 A, D*/ #define Z_axis_clkwise 0x1e61 #define Z_axis_Cntclkwise 0x2064 #define Distance_forward 0x1177 #define Distance_Backward 0x1f73 /*以下 6 个键,依次是 U, J, I, K, O, L*/ #define X_Delta_Plus 0x1675 #define X_Delta_Minus 0x246a #define Y_Delta_Plus 0x1769 #define Y_Delta_Minus 0x256b #define Z_Delta_Plus 0x186f #define Z_Delta_Minus 0x266c /*绕 X 轴旋转矩阵*/ float X_Rotate_Matrix[4][4] = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }; /*绕 Y 轴旋转矩阵*/ float Y_Rotate_Matrix[4][4] = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }; /*绕 Z 轴旋转矩阵*/

计算机图形学课程设计----课程设计

计算机图形学课程设计----课程设计

计算机图形学课程设计学 院:计算机科学学院 班 级:学 号:学生姓名:指导教师:2008年1月设计一一、课题说明用所学算法编写实现图形比例,移动,旋转变换的程序二、概要设计比例变换矩阵:移动变换矩阵:旋转变换矩阵:由于在640*480默认的显示模式下,原点(0,0)坐标在屏幕的左上角,左上角向右下角走,x 值增大,左上角向右上角走,y 值增大。

为了便于显示与理解,把原点定在(320,240)点。

则移动变换与旋转变换的矩阵就会改变。

移动变换矩阵:旋转变换后,x 坐标变为:320+(x-320)*cos(a)-(240-y)*sin(a);y 坐标变为:240-(x-320)*sin(a)-(240-y)*cos(a)本程序通过一个三角形比例,移动,旋转变换演示比例,移动,旋转后的结果。

首先画出需要变换的三角形(通过给出三角形的三个顶点画出三角形),对三个三角形的顶点变换实现比例,移动,旋转变换操作。

三、源程序及注释#include <stdio.h> #include <graphics.h>/*加入c 图形库*/ #include <math.h>yidong(int dx,int dy)/*实现移动函数*/S x 0 0 0 S y 0 0 0 1 1 0 0 0 1 0 T x T y 1cos (a) sin (a) 0 -sin (a) cos (a) 0 0 0 11 0 00 1 0 T x -- T y 1{moveto(320+dx,240-dy);lineto(420+dx,120-dy);lineto(450+dx,140-dy);变换三角形三个点的坐标实现移动变换*/lineto(320+dx,240-dy);/*}实现比例函数*/bilie(float Sx,float Sy) /*{moveto(320*Sx,240*Sy);lineto(420*Sx,120*Sy);lineto(450*Sx,140*Sy);变换三角形三个点的坐标实现比列变换*/lineto(320*Sx,240*Sy); /*}实现旋转函数*/xuanzhuan(float a) /*{float p;moveto(320,240);lineto(320+(420-320)*cos(a)-(240-120)*sin(a),240-(420-320)*sin(a)-(240-120)*cos(a));lineto(320+(450-320)*cos(a)-(240-140)*sin(a),240-(450-320)*sin(a)-(240-140)*cos(a));变换三角形三个点的坐标实现旋转变换*/lineto(320,240); /*}main(){int i,j;float X,Y,bx,by,a;int gdriver=DETECT,gmode; /*初始化显示模式参数*/初始化显示为默认的640*480、16色模式 */ initgraph(&gdriver,&gmode,""); /*i=20;j=240;moveto(i,j);/*使用双循环画点函数画出表格中的纵坐标*/for(i=20;i<=620;i+=20)lineto(i,240);i=320;j=20;moveto(i,j);/*使用双循环画点函数画出表格中的横坐标*/for(j=20;j<=460;j+=20)lineto(320,j);moveto(320,240);lineto(420,120);lineto(450,140);lineto(320,240);/*画出需变换的三角形,其三个顶点分别为(320,240);(420,120) ;(450,140)*/printf("please input X,Y to move:"); scanf("%f%f",&X,&Y); /*输入移动量 */ yidong(X,Y);printf("please input bx,by to scale:"); scanf("%f%f",&bx,&by); /*输入x 方向,y 方向缩放大小 */ bilie(bx,by);printf("please input a to circumgyrate:"); scanf("%f",&a); /*输入旋转角度,a 为正,则逆时针旋转*/ xuanzhuan(a); }四、运行结果原始三角形移动(40,40)后的三角形旋转45o 后的三角x 轴方向上缩小0.5倍后的三角形设计二一、课题说明编写一个AutoLISP程序,其功能是:画一个轴衬的两个视图,如图4所示。

计算机图形学课程设计模板

计算机图形学课程设计模板

计算机图形学课程设计
姓名:
学号:
指导老师:
系别:
专业班级:
计算机图形学课程设计任务书
摘要关键词:
目录
第1章概述
1.1 设计概述
1.2 系统环境
第2章总体设计
第3章功能实现
3.1程序运行结果分析
3.2 程序运行结果截图
第4章设计总结
参考文献
说明:
1)以上各章节内容的分配只做参考,允许改动
2)格式要求
一级标题:居中,小二号,黑体
二级标题:靠左,小三号,黑体
正文:五号宋体,可以适当调节行距
[1] 作者. . 析出文献题名[A].论文集名
.书名[M].版本(第一版不写)..文献题名[D].保存地点:[5] 作者. 文献题名[R].。

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

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

计算机图形学课程设计报告设计课题:专业班级:学号:学生姓名:指导教师:设计时间:中南林业科技大学涉外学院理工系计算机图形学课程设计任务书指导教师:廖宁教研室主任:2018年12月06 日注:本表下发学生一份,指导教师一份,栏目不够时请另附页。

课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。

目录一.设计目的……………………………………………………………二.设计要求……………………………………………………………1.构建基础类……………………………………………………2.构建直线类……………………………………………………3.构建变换类……………………………………………………4.构建填充类……………………………………………………5.构建光照类……………………………………………………三.开发环境…………………………………………………………四.详细设计五.源程序六.程序运行效果图七.总结设计目的培养对图形建模、变换、投影、消隐、光照原理的理解和应用。

培养图形类的编程能力。

培养计算机图形学应用软件开发的能力。

设计要求深入研究计算机图形学的生成原理,设计算法实现具体的类。

1.构建基础类实现CP2类绘制二维点;实现CP3类绘制三维点;实现CRGB 类处理RGB颜色;实现CVector类处理矢量。

2.构建直线类实现CLine类绘制任意斜率的直线、实现CALine类绘制任意斜率的反走样直线、实现CCLine类绘制任意斜率的颜色渐变直线、实现CACLine类绘制任意斜率的反走样颜色渐变直线。

3.构建变换类实现CTransForm完成二维和三维图形变换。

4.构建填充类实现CFill类使用有效边表算法填充多边形、实现CZBuffer类进行深度缓冲消隐,并使用Gouraud和Phong明暗处理填充图形面片。

5.构建光照类实现CLight类设置点光源、实现CMaterial类设置物体材质、实现CLighting类对物体实施光照。

计算机图形学课程设计

计算机图形学课程设计

计算机图形学计算机图形学》课程设计-(2015-- 2016 学年第二学期)学院专业班级学号学生姓名老师编写日期:目录真实感游戏场景绘制........................................... 3..一实验目的3...二实验内容3...三实验分工4...四理论基础4...1 雾化模型4...2 颜色模型5...3 光照模型6...4 纹理模型6...五系统描述1..3.1 墙壁、地面、箱子1..32 石柱、雪人1..43 玻璃球1..5.4 天空1..7.六心得体会1..9.七附录:程序源代码1..9计算机图形学真实感游戏场景绘制【摘要】本次课程设计绘制了一个真实感的三维场景,并实现场景漫游。

主要绘制了墙壁与地面、天空、石柱、箱子、玻璃球、雪人、雾等对象。

以Visual Studio2012为平台用OpenGL 基础知识实现此真实感场景的绘制。

一实验目的1.熟悉OpenGL 基础函数,并了解其用法。

2.通过程序模拟真实感游戏场景,掌握图形综合展示效果,基于专业背景,结合实验课内容与课程设计要求,使用OpenGL绘制简单的3D 真实感游戏场景,包括光栅化算法、多边形裁剪计算以及消隐算法在场景绘制中的应用。

实验内容和效果光栅化算法、多边形裁剪计算以及消隐算法在场景绘制中的应用,其中真实感场景绘制包括颜色模型、纹理模型、雾化模型、运动模型以及环境光、漫反射、镜面反射等光照模型设置。

图1 游戏场景整体效果四理论基础1 雾化模型OpenGL 中提供了完整的雾化接口,我们只需要选择合适的雾气的混合因子、密度、颜色、起始位置等。

在OpenGL 中,雾的工作模式有两种:线性模式和指数模式。

这两种模式是根据雾的浓度变化来区分的。

在线性模式下,只需要提供一个距离视点的开始位置和结束位置。

从开始位置到结束位置之间,雾的浓度越来越高,浓度的变化和距离成正比。

在指数模式下,雾的浓度随着距离的增加呈指数增长。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.撰写课程设计报告(任务书)
设计报告应包括的内容:课题名称及要求;系统总体设计方案(画出系统原理框图、方案的论证与比较等内容);画出程序整体框图。课程设计报告应认真、规范、正确
4.主要参考文献
1、杜晓增.计算机图形学基础(第二版).北京:机械工业出版社,2003
2、唐敏,童若锋.计算机图形学课程设计.杭州:浙江大学出版社,2008
具体要求:
(1)写出实现方法;
(2)实现该方法;
19.设计一个多边形,利用活化实现方法;
(2)实现该方法;
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
利用VC++或C++等工具进行应用程序的设计。学生应做到如下要求:
1.必须熟悉任务书的各项内容和要求,明确课程设计的目的、方法和步骤
2.设计中必须努力认真,独立地按质按量地完成每一阶段的设计任务
3.设计中严禁抄袭他人的设计成果
4.每人在设计中必须遵守各组规定的统一设计时间及有关纪律
5.所设计的程序必须满足实际使用要求,编译出可执行的程序
6.要求程序结构简单,功能齐全,使用方便
7.学生在完成系统功能的设计、调试后,申请指导教师验收。
(3)用中点法或区域代码的方法实现裁剪。
3、《图形变换》
具体要求:
(1)绘制出图形;
(2)实现图形的平移、旋转、缩放、错切等变换。
4、《绘制曲线》
具体要求:
(1)编写一个交互绘制Bezier或B样条曲线的程序;
(2)给出控制点就能绘制曲线;
(3)自己编写函数实现。
5、《可见面判断》
具体要求:
(1)绘制多面体图形;
(3)对汉字进行填充及各种变换。
14.在屏幕上使用鼠标左键绘制数量大于4的任意顶点形成控制多边形,单机鼠标右键绘制三次B样条曲线,同时在控制多边形的每一个特征三角形内用虚线显示三次B样条曲线的几何生成原理。
具体要求:
(1)分析原理,写出算法;
(2)实现该算法;
15.给定“树叶”轮廓的控制点,要求使用B样条曲线的特殊构造技巧,使用B样条绘制所构造的树叶。
具体要求:
(1)分析原理,写出算法;
(2)实现该算法;
16.样条曲线和正弦曲线同时绘制,进行效果对比,绘制的长度不少于两个周期。
具体要求:
(1)分析原理,写出算法;
(2)实现该算法;
17.自定义一个三维图形,可参考下图,绘出其三视图。
具体要求:
(1)分析原理,写出算法;
(2)实现该算法;
18.模仿Windows画图的界面,编写一个交互画图的小系统程序。
8. 《观察和投影变换》
具体要求:
(1)设计一立体图形;
(2)输出其三视图;
(3)定义观察窗口,输出其三维线架图。
9.《设计一个动画程序》
具体要求:
(1)设计一个图形,完成该图形的动画演示;
(2)给出使用说明。
10.《用OpenGL绘制一三维图形》
具体要求:
(1)绘制三维图形;
(2)添加纹理。
11.《设计一个分形树》
计算机图形学课程设计任务书[1]
———————————————————————————————— 作者:
———————————————————————————————— 日期:
南京工程学院
课程设计任务书
课 程 名 称计算机图形学
院(系、部、中心)计算机工程学院
专业计算机科学与技术
班 级多媒体091
起 止 日 期2011.12.19—12.25
验收并简单考查
撰写课程设计报告(任务书)
6.成绩考核办法
1.设计报告的成绩ﻩ30%
2.实际动手能力 ﻩ50%
3.创新能力10%
4.态度和纪律10%
成绩评定分优秀、良好、中等、及格和不及格等五档。
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
(2)输出各面的可见性;
(3)做任意角度旋转变换,再判断各面的可见性
6、《颜色渐变三角形》
具体要求:
(1)绘制三角形;
(2)实现颜色的各种变换;
(3)实现填充色的渐变(从一个方向开始颜色由浅入深)
7、《绘制三维五角星》
具体要求:
(1)编写一个绘制三维五角星的程序;
(2)实现填充,中心点最红,渐变到外围颜色变浅;
指 导 教 师丁宇辰
ﻬ1.课程设计应达到的目的
《计算机图形学》是一门理论与实践并重的课程,既要注重理解基本知识,也要注重培养基本技能。相应的计算机图形学课程设计对帮助学生全面牢固地掌握课堂教学内容、培养学生编程能力、提高学生全面素质具有很重要的意义。通过本课程的实践环节,使学生具有使用计算机图形学的基本算法开发简单应用程序的能力,并理解软件系统开发的基本流程。
2.课程设计题目及要求
选择实现以下任务中的1~2个。
1、《多边形填充》(直线、圆、椭圆利用算法自编函数进行调用)
具体要求:
(1)能利用交互手段实现多边形、圆或椭圆的绘制,并能实现填充;
(2)自己编写划线函数;
(3)自己编写填充函数;
2、《二维图形裁剪》
具体要求:
(1)设计程序实现二维图形的裁剪;
(2)设计坐标系,画出二维图形;
3、孔令德.计算机图形学课程设计.北京:北京大学出版社,2005
4、孔令德.计算机图形学课程设计教程.北京:北京大学出版社 2001
5.课程设计进度安排
起 止 日 期
工 作 内 容
2011-12-12
2011-12-19至2011-12-25
2011-12-25
选定设计课题,下达设计任务
学生查询资料,进行设计,并上机调试,教师辅导
具体要求:
(1)写出算法分析步骤;
(2)实现该算法;
(3)改变输入,观察分形图形。
12.《设计B样条曲面》
具体要求:
(1)对B样条曲面的数学表达式进行分析,写出算法步骤;
(2)实现该算法;
(3)改变输入,观察曲面图形。
13.《自造字库,设计一个特大型汉字》
具体要求:
(1)构造汉字字库;
(2)实现汉字的输出;
相关文档
最新文档