Seed pt setstackemptyo pt.x =X, pt.y=y stackpush(pt);∥将前面生成的区段压入堆栈 while(lisstackemptyo) i pt= stackpopO y=pt. y: X=pt.X while( getpixel(xy)=≡ oldcolor)∥向右填充 i drawpixel(x, y, newcolor); Xr=x-1 x=pt.x-1 whle( gepiⅸxel(xy)=≡ oldcolor)∥向左填充 drawpixel(x,y, newcolor x|=x+1 ∥0理上面一条扫描线 x=XI: while(X<x I spanNeedFill=FALSE while(getpixel(x, y)==oldcolor) i spanNeedFil=TRUE if(spanNeedFill I pt. XX-1: pt. y=y stackpush(pt); spanNeedFil=FALSE; while(getpixel(x, y)l=oldcolor & x<xr)X++ H/End of while(isxr) ∥处理下面一条扫描线,代码与处理上面一条扫描线类似 x=XI: 2; while(X<xr HEnd of while(isxr) H/End of while(lisstackempty o) 上述算法对于每一个待填充区段,只需压栈一次:而在递归算法中,每个象素都需要压栈。因此,扫描 线填充算法提高了区域填充的效率。 24字符 字符指数字、字母、汉字等符号。计算机中字符由一个数字编码唯一标识。国际上最流行的字符集是“美 国信息交换用标准代码集”简称ASCⅠI码。它是用7位二进制数进行编码表示128个字符,包括字母、标点、 运算符以及一些特殊符号。我国除采用 ASCII码外,还另外制定了汉字编码的国家标准字符集GB2312-80。 该字符集分为94个区,94个位,每个符号由一个区码和一个位码共同标识。区码和位码各用一个字节表示 为了能够区分 ASCII码与汉字编码,采用字节的最高位来标识:最高位为0表示 ASCII码:最高位为1表 示表示汉字编码 为了在显示器等输出设备上输出字符,系统中必须装备有相应的字库。字库中存储了每个字符的形状信 息,字库分为矢量和点阵型两种 241点阵字符 在点阵字符库中,每个字符由一个位图表示。该位为1表示字符的笔画经过此位,对应于此位的象素应 置为字符颜色。该位为0表示字符的笔画不经过此位,对应于此位的象素应置为背景颜色。在实际应用中 计算机图形学第二章第26页共27页计算机图形学 第二章 第 26 页 共 27 页 Seed pt; setstackempty(); pt.x =x; pt.y=y; stackpush(pt); //将前面生成的区段压入堆栈 while(!isstackempty()) { pt = stackpop(); y=pt.y; x=pt.x; while(getpixel(x,y)==oldcolor) //向右填充 { drawpixel(x,y,newcolor); x++; } xr = x-1; x = pt.x-1; while(getpixel(x,y)==oldcolor) //向左填充 { drawpixel(x,y,newcolor); x--; } xl = x+1; //处理上面一条扫描线 x = xl; y = y+1; while(x<xr) { spanNeedFill=FALSE; while(getpixel(x,y)==oldcolor) { spanNeedFill=TRUE; x++; } if(spanNeedFill) { pt.x=x-1;pt.y=y; stackpush(pt); spanNeedFill=FALSE; } while(getpixel(x,y)!=oldcolor && x<xr) x++; }//End of while(i<xr) //处理下面一条扫描线,代码与处理上面一条扫描线类似 x = xl; y = y-2; while(x<xr) { .... }//End of while(i<xr) }//End of while(!isstackempty()) } 上述算法对于每一个待填充区段,只需压栈一次;而在递归算法中,每个象素都需要压栈。因此,扫描 线填充算法提高了区域填充的效率。 2.4 字符 字符指数字、字母、汉字等符号。计算机中字符由一个数字编码唯一标识。国际上最流行的字符集是“美 国信息交换用标准代码集”简称 ASCII 码。它是用 7 位二进制数进行编码表示 128 个字符,包括字母、标点、 运算符以及一些特殊符号。我国除采用 ASCII 码外,还另外制定了汉字编码的国家标准字符集 GB2312-80。 该字符集分为 94 个区,94 个位,每个符号由一个区码和一个位码共同标识。区码和位码各用一个字节表示。 为了能够区分 ASCII 码与汉字编码,采用字节的最高位来标识:最高位为 0 表示 ASCII 码;最高位为 1 表 示表示汉字编码。 为了在显示器等输出设备上输出字符,系统中必须装备有相应的字库。字库中存储了每个字符的形状信 息,字库分为矢量和点阵型两种。 2.4.1 点阵字符 在点阵字符库中,每个字符由一个位图表示。该位为 1 表示字符的笔画经过此位,对应于此位的象素应 置为字符颜色。该位为 0 表示字符的笔画不经过此位,对应于此位的象素应置为背景颜色。在实际应用中