计算机图形学若干基础算法探究
计算机图形学若干基础算法探究 引言:我们现代人生活在各种各样的信息之中,如 何应用计算机处理信息,处理图形成为了一个越来越重要的 课题。本论文主要介绍了计算机图形学,以及两种基础算法: 多边形裁剪算法和逐点生成算法。 1.计算机图形学 1.1计算机图形学概述 我们现代人生活在各种各样的信息之中,如何应用计算 机处理信息,处理图形成为了一个越来越重要的课题。本论 文所要介绍的计算机图形技术,是计算机领域的热门领域之 一,它是同电子硬件和计算机的周边设备一同发展而来。随 着人类在航空航天、军事和通信等领域的突破,计算机图形 学也得到了很快的发展。 计算机图形学是一门实用计算机产生、显示以及处理图 形界面的知识体系。计算机图形学已经变得越来越重要,主 要原因是:人们接收和发出信息,图形是很好的一种传递信 息的方式。一个图形本身,就具有很丰富的信息,人们根据 图形能够很自然快速地与外界进行交流。 1.2计算机图形学研究热点 计算机图形学主要研究以下三个方面的内容。第一:隐 藏线(面)的消除;第二:基本曲线的裁剪以及绘制;第三: 现代图形学热点研究的内容,主要是虚拟现实技术、可视化、 三维立体的重建等等。 由于在一个图形应用或图形软件中要大量重复调用这 些基础算法,因此在这方面的任何进步都会对整个图形系统 产生很大的影响。计算机图形学的基础算法经过人们几十年 的研究,己比较成熟。但每一个进步对解决图形技术所面临 的存储、传输、显示等问题都有很大的帮助。 2.基础算法的研究 2. 1多边形裁剪算法 裁剪是处理图形一种很基础的方法,常见的裁剪操作主 要有将不同的图形裁剪拼接形成新的图形。我们可以看出, 裁剪算法在计算机图形学中是一种十分基础但是却又十分 重要的操作[1]。 本论文所提到的裁剪方法,主要是针对凸多边形的。裁 剪方法主要可以分为四个方法:中点算法、CS算法、CB算 法、梁B算法。 (1) CS算法是Cohen-Sutherland的一种分区编码算法 [2]。CS算法以前是计算机图形学中很重要的一种算法。CS 算法对线段可以分为以下三种情况:窗内、窗外以及其它情 况。我们在使用CS算法的时候,需要判断线段两端端点的 编码,进而判断窗口和线段之间的位置关系,这种算法的缺 点是对于判断所做的工作比其他算法多。端点编码检查算法 的核心代码如下: end point code algorithm Pl and P2 are the end points of the line xL, xn, yT, yB are the left, right, top and bottom window coordinates calculate the end point codes put the codes for each end into 1*4 arrays called Plcode and P2code first end point: Pl if xl xR then Plcode (3) = 1 else Plcode (3) = 0 if yl xR then Plcode (3) = 1 else Plcode (3) = 0 if y2