计算机图形学裁剪
- 格式:doc
- 大小:54.50 KB
- 文档页数:6
计算机图形学的裁剪算法
计算机图形学的裁剪算法是图形学的一种重要算法,它的基本思想是将一个完整的几何图形(如线段、多边形、圆圈等)按照指定的裁剪窗口(矩形)进行裁剪,只保留在窗口内的部分,而把窗口外的部分抛弃掉。
由于裁剪算法的应用非常广泛,像图形显示系统、图形设备接口(GDI)和图形处理器(GPU)等都广泛使用裁剪算法。
计算机图形学的裁剪算法可以分为两种:2D裁剪算法和
3D裁剪算法。
2D裁剪算法是基于二维空间的,它将一个几何
图形投影到一个平面上,然后按照指定的窗口裁剪;而3D裁
剪算法是基于三维空间的,它将一个几何图形投影到一个三维空间,然后按照指定的窗口裁剪。
2D裁剪算法的基本步骤如下:首先,将要裁剪的几何图
形投影到平面上;其次,计算出投影后的几何图形以及裁剪窗口之间的交点;最后,将裁剪窗口内的部分保留,而把窗口外的部分抛弃掉。
3D裁剪算法的基本步骤如下:首先,将要裁剪的几何图
形投影到三维空间;其次,计算出投影后的几何图形以及裁剪窗口之间的交点;最后,将裁剪窗口内的部分保留,而把窗口外的部分抛弃掉。
计算机图形学的裁剪算法在图形处理中有着重要的作用,它不仅能够有效减少图形处理时间,而且还可以节约存储空间。
此外,它还可以有效提高图形处理效率,提高图形显示效果。
但是,它也存在着一定的局限性,比如,当几何图形的运动变得复杂时,它就会变得费时费力,这就对性能产生了一定的影响。
总之,计算机图形学的裁剪算法是图形学的重要算法,它的应用非常广泛,在图形处理中有着重要的作用。
虽然它也存在着一定的局限性,但是它仍然是一种有效的图形处理算法。
一、实验目标1.了解Cohen-SutherLand线段裁剪算法、Liang-Barsky线段裁剪算法、SutherLand-Hodgeman多边形裁剪算法的基本思想;2.掌握Cohen-SutherLand线段裁剪算法、Liang-Barsky线段裁剪算法、SutherLand-Hodgeman多边形裁剪算法的算法实现;二、实验内容本次实验主要是实现Cohen-SutherLand线段裁剪算法、Liang-Barsky线段裁剪算法、SutherLand-Hodgeman多边形裁剪算法。
Cohen-sutherland线段裁剪算法思想:该算法也称为编码算法,首先对线段的两个端点按所在的区域进行分区编码,根据编码可以迅速地判明全部在窗口内的线段和全部在某边界外侧的线段。
只有不属于这两种情况的线段,才需要求出线段与窗口边界的交点,求出交点后,舍去窗外部分。
对剩余部分,把它作为新的线段看待,又从头开始考虑。
两遍循环之后,就能确定该线段是部分截留下来,还是全部舍弃。
Cohen-sutherland线段裁剪算法步骤:1、分区编码延长裁剪边框将二维平面分成九个区域,每个区域各用一个四位二进制代码标识。
各区代码值如图中所示。
四位二进制代码的编码规则是:(1)第一位置1:区域在左边界外侧(2)第二位置1:区域在右边界外侧(3)第三位置1:区域在下边界外侧(4)第四位置1:区域在上边界外侧裁剪窗口内(包括边界上)的区域,四位二进制代码均为0。
设线段的两个端点为P1(x1,y1)和P2(x2,y2),根据上述规则,可以求出P1和P2所在区域的分区代码C1和C2。
2、判别根据C1和C2的具体值,可以有三种情况:(1)C1=C2=0,表明两端点全在窗口内,因而整个线段也在窗内,应予保留。
(2)C1&C2≠0(两端点代码按位作逻辑乘不为0),即C1和C2至少有某一位同时为1,表明两端点必定处于某一边界的同一外侧,因而整个线段全在窗外,应予舍弃。
12直线生成算法圆与椭圆的绘制算法5图元的概念436区域填充算法裁剪反走样技术4.5 裁剪—4.5 裁剪—4.5 裁剪—4.5 裁剪—4.5 裁剪—4.5 裁剪—算法实现◆第一步◆第二步4.5 裁剪—编码实现(第一步)九个区域,每一个区域采用四位编码对于任一端点左),赋予一个◆左:若◆右:若◆下:若◆上:若4.5 裁剪—编码实现(第一步)对要被裁剪的线段的两个端点,如果其所在的区域的编码均是如果两个编码的见的,可简弃之;如果两个编码的少一个端点非在交点处把线段一分为二,其中必有一段完全在窗口外,可弃之。
再对另一段重复进行上述处理,直到该线段完全被舍弃或找到位于窗口内的一段线段为止。
4.5 裁剪—析出点。
求出其交点见的,因而只要对上述处理步骤。
y=裁剪结束。
算法步骤界坐标:code2(0100)之,转则交换段与窗口边界的交点除p算法的编码实现到另一端点间的线段重复上述过程直到接受或拒绝;计算线段if(LEFT&codeelse if(RIGHT&codeelse if(BOTTOM&code {y=YB;else if(TOP & code !=0) {y=YT;Cohen-SutherlandNicholl et al. An efficient new algorithm for 2-D line clipping: its4.5 裁剪—4.5 裁剪—4.5 裁剪—(((4.5 裁剪—)界L上;要条件A和该处内法向量P(t)4.5 裁剪—)。
4.5 裁剪—)终点组:N i ⋅(P 2-P 1)<0 起点组:N i ⋅(P 2-P 1)>0 特殊情况:N i ⋅(P 2-P 1)=0这时,,P 1P 2与对应边平行, 这时有两种情况:线段在区域外侧或内侧:前一种情况对应于N i ⋅(P 2-P 1)<0,可直接判断线段在多边形之外前一种情况对应于N i ⋅(P 2-P 1)>0,则不于考虑,继续处理其他边。