1、 图形学课程设计图形学课程设计 课程设计名称课程设计名称:各种二维图形裁剪技术研究 姓名姓名: 学号学号: 学院学院:基础学院 班级班级:信息与计算科学 2010-1 指导老师指导老师: 小组成员小组成员: - 1 - 目录目录 1、摘要 2 2、二维图形裁剪2 2.1 裁剪的原理 2 2.2 裁剪的分类3 2.2.1.线段的裁剪3 2.2.2 多边形的裁剪5 2.2.3.圆和曲线的裁剪6 3、算法 6 3.1 裁剪算法7 3.2 裁剪圆算法9 3.3 裁剪窗口是圆算法 11 4、 心得体会12 5、 参考文献12 6、功能实现效果的图片展示13 - 2 - 1、摘要摘要 近几十年来,计算机图
2、形学有了引人瞩目的发展,它已广泛 应用于计算机辅助设计、电视广告、动画和仿真等许多领域并发 挥着重要作用。可以说计算机图形学已经发展成为一门成熟的学 科。在各种实践应用中,计算机图形学的许多基础算法发挥着不 可替代的重要作用,因此不断提高和完善图形学的基础算法至关 重要。 计算机图形学是研究在计算机中如何构造图形,并把图形的 描述数据(数学模型)通过指定的算法转化为图形显示的学科。目 前,计算机图形学的主要研究对象包括:点、线、面二维图 形学:体三维图形学以及场等的数学构造方法与其图形显示 以及它们的变化情况。 2、二维图形裁剪二维图形裁剪 在使用计算机处理图形信息时,计算机内部存储的图形往往
3、 比较大,而屏幕显示的只是图的一部分。因此需要确定图形中哪 些部分落在显示区之内,哪些落在显示区之外,以便只显示落在 显示区内的那部分图形。 从数据集合中抽取所需信息即识别指定区域内或区域外的图 形部分的过程称为裁剪算法,简称裁剪。它是计算机图形学中许 多重要问题的基础。裁剪典型的用途是确定场景或画面中位于给 定区域之内的部分。这一区域称为裁剪窗口。 最简单的裁剪方法是把各种图形扫描转换为点之后,再判断 各点是否在窗口内。但那样太费时,一般不可取。这是因为有些 图形组成部分全部在窗口外, 可以完全排除, 不必进行扫描转换。 所以,一般采用先裁剪再扫描转换的方法。 裁剪的应用包括:从定义的场景中
4、抽取出用于观察的部分; 在三维视图中标识出可见面:防止线段或对象的边界混淆;使用 实体造型来创建对象;显示多窗口的环境;允许选择图形一部分 进行复制、移动或删除等绘图操作。对于不同的应用,裁剪窗口 可以是多边形或包含有曲线边界。 2.1 裁剪的原理裁剪的原理 裁剪的基本目的是判断图形元素是否部分或全部落在窗口 区域之内,如果是,则进一步求出位于窗口内的部分。裁剪处理 包括两个方面:判断图形元素是否在窗口内以及求图形元素与窗 口的交。 一般把窗口定义为矩形,由上、下、左、右四条边围成,即: (xL,yB),(xR,yT)。裁剪的实质就是决定图形中哪些点、线段、 - 3 - 文字以及多边形在窗口之
5、内。 对于点(x,y),只要判断两对不等式: xLxxR,yByyT 若四个不等式均成立。则点在矩形窗口之内;否则,点在矩 形窗口之外。 2.2 裁剪的裁剪的分类分类 裁剪算法大致包括对以下图形的裁剪: 线段的裁剪(线段) 区域的裁剪(多边形) 区域的裁剪(圆和曲线) 2.2.1 线段的线段的裁剪裁剪 线段与窗口的关系有如下三种: (1)线段在窗口内,线段不需剪裁,完全可见; (2)线段在窗口外,即线段不需剪裁,完全不可见; (3)线段部分在窗口内,部分在窗口外,即需要求出线段与 窗框的交点,并将窗口外的线段部分剪裁掉,只可见窗口内的直 线部分。 线段的裁剪算法就是要找出位于窗口内部的起始点和终止点 的坐标。因矢量裁剪法对寻找起点和终点坐标的处理方法相同, 下面以求始点坐标为例来说明线段矢量裁剪方法。 在右图中, 窗口的 四条边界把 XOY 平面 分成九个区域, 分别用 到对这九个窗口 编号, 设号区域为相 应的可见窗口区, 窗口 的 左 下 角 点 坐 标 (minX,minY) ,右上 角点坐标为(maxX, maxY) 。 有一条矢量线 段 S,其起、终点的坐 标分别为(Xs,Ys) 和(