1、第三章 基本图形元素的生成算法3.1 直线的生成算法3.2 圆的生成算法3.3 椭圆的生成算法3.4 区域填充算法第三章 基本图形元素的生成算法计算机图形学教学要求:了解在计算机上生成图形的特点,并掌握生成基本图形的方法。达到最后编写简单的程序与小软件的目的。 重点与难点 :在全书整个环节中是一个 重点 加以讨论。本章重点为基本图形生成算法。列出了很多种,首先是对直线的。然后可以几乎平行地推广到其它,如圆、椭圆等。重点应是最基本最开始的直线生成算法。难点 是同学往往不习惯在计算机上表示图形,特别对两种方法中的点阵方法表示更不习惯。中学、大学学解析几何,是用生成法生成的图形。给出方程 ,例如直线
2、 y=kx+b, 用参数 k与 b描述。但计算机生成图形最基本是点阵,它用像素。计算机屏幕有大小限制,像素点有矩阵大小限制,所以要在限制的范围内取点。这种运算及思考方法不习惯。克服难点要强调计算机特点出现的情况反复对照 像素放大后稀疏的格子点 ,适应这种习惯。适应这种思维与这种运算方法。 第三章 基本图形元素的生成算法计算机图形学(0,0)(5,3)(0,0)(6,0)(6,6)(0,6)第三章 基本图形元素的生成算法计算机图形学扫描转换 :通常把图像中的点、线、圆、区域和字符等图形基本指令组成的显示文件转换成为显示缓冲器中图像的位 映像 图 的过程,成为扫描转换。位图:是与屏幕图像每个像素点
3、一一对应的图像矩阵,矩阵中的每个元素就是像素的值(表示灰度级别与色彩)。选择扫描转换算法,速度与图像质量两者之间权衡折衷。由于在建立一幅图形过程中,基本的图形扫描转换算法将被调用成百上千此,因此,速度快一些是比较可取的。第三章 基本图形元素的生成算法计算机图形学光栅显示器上显示的图形,称之为 光栅图形 。光栅显示器可以看作是一个象素矩阵,在光栅显示器上显示的任何一个图形,实际上都是一些像素的集合。由于对一个具体的光栅显示器来说,象素个数是有限的,象素的颜色和灰度等级也是有限的,象素是有大小的,所以光栅图形只是近似的实际图形。如何使光栅图形最完美地逼近实际图形,便是光栅图形学要研究的内容。 确定
4、最佳逼近图形的像素集合的过程称为 图形的扫描转换 或 光栅化 。 第三章 基本图形元素的生成算法计算机图形学3.1直线的生成算法直线的扫描变换 ,对计算机图形学来说,就是在数字设备上绘制一条直线。由于显示屏是有限象素点构成,所以具体是 指在有限个象素组成的矩阵中,确定最佳逼近这条直线的一组象素,并按扫描线顺序,用当前写的方式,对这些象素进行写的操作。 . . 点的生成在光栅显示器中,点就是一个像素 (点 ),它是显示器的最小单位,是最基本的图形元素。不同于只有位置没有大小的 几何点 。光栅显示器的屏幕分辨率,是由像素点的多少决定的,每个 像素点 与显示缓冲器中 每一个位 相对应,因为显示缓冲存
5、储容量有限,像素点也有限。第三章 基本图形元素的生成算法计算机图形学显示器的分辨率,常用 HV表示。 H水平方向分辨率,如 320、 640、 1024等,取 8的倍数。V垂直分辨率。( x1,y1)xy图 3.1 屏幕点的表示第三章 基本图形元素的生成算法计算机图形学如果屏幕坐标为( x1,y1) 位置要显示一个像素发亮,就要在显示缓冲区的对应地址处,写入一个灰度级别或色彩值。假设显示缓冲区的位面为字节编址,其 首地址为 S,像素数据的每一位分散存放在各个位平面的相同位置处。像素在 屏幕上的位置 与 像素在位面上的地址 成一定的映像关系。( X1,Y1)的像素点,对应的显示缓冲器地址为:字节
6、地址 = S + ( H / 8 ) * Y1 + ( X1 / 8 ) 的整数部分字节内的位地址 = X1 / 8 的余数第三章 基本图形元素的生成算法计算机图形学3.1.2 直线段的生成数学上的直线是由无数个点构成的集合,显然,光栅显示器只能近地似显示直线。对于水平、垂直和 45 斜线是可以达到较为满意的效果的。当我们对直线进行光栅化时,需要确定最佳逼近该直线的一组象素。 扫描转换直线段就是计算出落在直线段上或充分靠近它的一串像素 ,并以此像素近似代替原连续直线段在屏幕上显示的过程。第三章 基本图形元素的生成算法计算机图形学图 3.2 直线的生成a) b) c)直线的绘制首先要考虑的是绘制的质量。怎样才算高质量?当然,看上去要象直线。 :1. 画的直线应是直的2. 线的端点位置应正确3. 线的浓度应均匀4. 直线生成的速度要快