第
1
章
基本图形的生成
计算机图形学已成为计算机技术中发展最快的领域,计算机图形软件也相应得到
快速发展。计算机绘图显示有屏幕显示、打印机打印图样和绘图机输出图样等方式,其
中用屏幕显示图样是计算机绘图的重要内容。
计算机上常见的显示器为光栅图形显示器,光栅图形显示器可以看作像素的矩阵
像素是组成图形的基本元素,一般称为“点”。通过点亮一些像素,灭掉另一些像素,
即在屏幕上产生图形。在光栅显示器上显示任何一种图形必须在显示器的相 应像素
点上画上所需颜色,即具有一种或多种颜色的像素集合构成图形。确定最佳 接近图
形的像素集合,并用指定属性写像素的过程称为图形的扫描转换或光栅化。 对于一
维图形,在不考虑线宽时,用一个像素宽的直、曲线来显示图形。二维图形 的光栅
化必须确定区域对应的像素集,并用指定的属性或图案进行显示,即区域 填充。
复杂的图形系统,都是由一些最基本的图形元素组成的。利用计算机编制图形软
件时,编制基本图形元素是相当重要的,也是必需的。点是基本图形,本章主要讲述如
何在指定的输出设备(如光栅图形显示器)上利用点构造其他基本二维几何图形(如点、
直线、圆、椭圆、多边形域及字符串等)的算法与原理,并利用 Visual C++编程实现这
些算法。
1.1 直 线
数学上,理想的直线是由无数个点构成的集合,没有宽度。计算机绘制直线是在
显示器所给定的有限个像素组成的矩阵中,确定最佳逼近该直线的一组像素,并且按扫
描线顺序,对这些像素进行写操作,实现显示器绘制直线,即通常所说的直线的扫描转
换,或称直线光栅化。
由于一图形中可能包含成千上万条直线,所以要求绘制直线的算法应尽可能地快。
本 节 介 绍 一 个 像 素 宽 直 线 的 常 用 算 法 : 数 值 微 分 法 ( DDA ) 、 中 点 画 线 法 、