计算机图形学的功能需求,图形学课程设计要求 《计算机图形学》.doc

《计算机图形学》课程设计

一、 设计要求

1. 根据设计任务,编制程序,在机器上调试运行,并通过上机考核。

2. 按照下面的“三、课程设计报告格式”的要求,写出课程设计报告。

3. 课程设计报告在第19周之前交来。

二、 设计任务

1.

1)给定直线的起点坐标为P0(x0,y0)、终点坐标为P1(x1,y1),容易计算出直线斜率k。假设0≤k≤1,则x方向为主位移方向,绘制直线的递推公式为:

,这称为数值微分法(Digital Differential Analyzer,DDA),请编程实现之。提示:DDA算法实质上是对直线斜率进行了四舍五入计算。

2)椭圆的扫描转换。

2.

用鼠标在屏幕上绘制任意顶点数的封闭多边形并填充,填充效果如下图所示。编程要求:⑴多边形的顶点数不受限制;

⑵按下鼠标左键,拖动鼠标绘制多边形,同时按下Shift键可以绘制水平边或垂直边;

⑶单击鼠标右键闭合多边形;

⑷使用边缘填充算法填充多边形。

3

请按照图所示,使用对话框输入直线的起点和终点坐标。在窗口左侧区域绘制输入直线和“窗口”,在窗口右边右侧区域绘制“视区”并输出裁剪结果。这里需要用到窗视变换的公式。请分别用Cohen-Sutherland算法、中点分割裁剪算法和梁友栋-Barsky算法实现。

4

在屏幕上使用鼠标绘制控制多边形,根据控制多边形的阶次绘制Bezier曲线和B样条曲线。

5.

1) 使用VC编程实现,以直角三角形为基础绘制下图所示Sierpinski三角形。

2)以屏幕范围为基础绘制下图所示Sierpinski地毯。

6.

1)给定直线的起点颜色(如红色)和终点颜色(如黑色)不同,请使用中点Bresenham算法绘制任意斜率的颜色渐变直线,效果如图所示。

2)用梁友栋-Barsky算法裁剪线段P1(3,3),P2(-2,-1),裁剪窗口为wxl=0,wxr=2,wyb=0,wyt=2。

7.

边缘填充算法的重要缺点是每一个像素可能被多次访问。为此,在多边形外接矩形的中心设置栅栏,把多边形分成两部分,如图所示。在处理每条扫描线时,只将交点与栅栏间的像素取补。填充效果如图所示。

带栅栏的的多边形图

带栅栏的多边形填充效果图

8.

扫描线种子填充算法是通过扫描线来填充水平像素段,仅将每条扫描线的最右端像素点入栈,可以有效提高算法效率,请编程实现。

9.

1)给定下图所示的四个控制点:P0=(228,456),P1=(294,247),P2=(452,123),P3=(705,197)。分别绘制三次Bezier曲线和三次B样条曲线。

2)使用VC编程,在窗口中一次绘制n=0~5的所有Cantor图

10. 请使用GetCurrentTime()函数读取系统时间,对时钟指针进行反走样,下图的左侧为走样时钟,右侧为反走样时钟。

三、 设计报告格式

1. 封面格式 (题目、姓名、学号、专业、完成日期等)

封面范例:

《计算机图形学》课程设计

题目:

指导老师:

姓 名:

学 号:

院 (系):

专 业:

完成日期: 年 月 日

2. 正文格式

1课题题目介绍

2 整体功能及设计

3 编程实现

4 使用说明

5 结果分析

6 课程设计总结

四、 课程设计考核标准:

通过答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,总结报告和答辩水平以及学习态度综合考评。

学生的动手能力,创新精神,程序设计的可用性,实用性,通用性,可扩充性(40%)

答辩水平(20%)

总结报告(40%)

8

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值