内容发布更新时间 : 2024/11/1 6:50:21星期一 下面是文章的全部内容请认真阅读。
《计算机图形学》实验指导书
学院: 理学院 专业: 信息与计算科学 时间:
目 录 (选作三个) (一) 实验一 直线的扫描转换实验 (二) 实验二 区域填充算法实验 (三) 实验三 多边形裁剪实验 (四) 实验四 Bezier曲线段的拼接实验 (五) 实验五 透视投影变换实验
实验一 直线的扫描转换实验 (4学时) 验证性实验
1. 实验目的:
了解如何利用不同的算法确定最佳逼近直线的象素点集;了解Bresenham算法的工作原理及其现。
2. 实验内容:
(一)数值微分法
ΔX=X1-X0,ΔY=Y1-Y0,K=ΔY /ΔX,当|K|≤1时,取下一个象素点为(Xi+1,round(Yi+K))。当|K|>1时,必须把X,Y的地位交换,取下一个象素点为(round(Xi+1/K),Yi+1)。 (二)Bresenham算法
当X=X+1,则d=d+K,K为直线的斜率即K=ΔY/ΔX, (1)当d<0.5时,则下个象素点Y的值为Y(不变)。 (2)当d≥0.5时,则下个象素点Y的值为Y+1; (3)当d>1时,则d=d-1,以保证d在0、1之间。 令e=d-0.5,e的初值为-0.5,
则当e<0时,下一个象素点坐标为(X+1,Y),
当e≥0时,下一个象素点坐标为(X+1,Y+1),并且修改e的值e=e-1。 (三)比较两种算法的优缺点
3. 实验报告要求:
(1)简述实验目的及实验原理; (2)给出程序; (3)说明有关结果
实验二 区域填充算法实验 (4学时) 设计性实验
1. 实验目的:
了解如何利用一种颜色来填充一个二维区域;知道活性边表算法和种子填充算法的原
- 1 -
理,能独立编程实现在显示器上对多边形区域的填充;
2. 实验内容:
(一)有序边表算法
(1)多边形填充的一般过程:求交、排序、交点配对、区间填色。 (2)活性边表的作用、结构及其构造。 (3)Y桶表的作用及构造。 (二)种子填充算法
(1)四向连同区域与八向连同区域。 (2)种子填充算法实现的过程及其改进。
3. 实验报告要求:
(1)简述实验目的及实验原理; (2)给出程序; (3)说明有关结果
实验三 多边形裁剪实验 (4学时) 设计性实验
1. 实验目的:
认识如何在有限的屏幕上显示图形的一部分;掌握参数化裁剪算法和多边形裁剪的技巧,编写程序实现对任意输入的多边形区域的裁减。
2. 实验内容:
(一)判断线段与窗口关系的区域编码方法及其实现。
(1) 若code1=0且code2=0时,说明两个端点均在窗口内,整条线段都显示。 (2) 若code1&code2不等于0时,则说明两个端点同在窗口的上方、下方、左方、
右方。该线段在窗口外,我们不显示。
(3) 若code1&code2=0时,需要求出线段与窗口某边的交点,在交点处把线段一分
为二,其中必有一段完全在窗口外,不显示,再对另一段重复进行上述处理。
(二)逐次多边形裁剪算法
一次用窗口的一条边裁剪多边形。分别实现左边裁剪、顶边裁剪、右边裁剪、底
- 2 -