5. 封闭图形的填充
填充就是用规定的颜色和图模填满一个封闭图形。
一、先画轮廓再填充
TURBOC提供了一些先画出基本图形轮廓, 再按规定图模和颜色填充整个封闭图形的函数。在没有改变填充方式时,TURBO C以默认方式填充。 下面介绍这些函数。
void far bar(int x1, inty1, int x2, int y2);
确定一个以(x1, y1)为左上角, (x2,y2)为右下角的矩形窗口,再按规定图模和颜色填充。
说明: 此函数不画出边框,所以填充色为边框。
void far bar3d(int x1, int y1, int x2, inty2, int depth, int topflag);
当topflag为非0时,画出一个三维的长方体。当topflag为0时,三维图形不封顶, 实际上很少这样使用。
说明: bar3d()函数中,长方体第三维的方向不随任何参数而变, 即始终为45度的方向。
void far pieslice(int x,int y, int stangle, int endangle, int radius);
画一个以(x, y)为圆心, radius为半径,stangle为起始角度, endangle 为终止角度的扇形,再按规定方式填充。当stangle=0, endangle=360时变成一个实心圆,并在圆内从圆点沿X轴正向画一条半径。
void far sector(int x, inty, int stanle, intendangle, int xradius, intyradius);
画一个以(x, y)为圆心分别以xradius,yradius为x轴和y轴半径, stangle为起始角,endangle为终止角的椭圆扇形,再按规定方式填充。
二、设定填充方式
TURBOC有四个与填充方式有关的函数。下面分别介绍:
void far setfillstyle(intpattern, int color);
color的值是当前屏幕图形模式时颜色的有效值。pattern的值及与其等价的符号常数如表7所示。
表7. 关于填充式样pattern的规定
━━━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
———————————————————————————
EMPTY_FILL 0 以背景颜色填充
SOLID_FILL 1 以实填充
LINE_FILL 2 以直线填充
LTSLASH_FILL 3 以斜线填充(阴影线)
SLASH_FILL 4 以粗斜线填充(粗阴影线)
BKSLASH_FILL 5 以粗反斜线填充(粗阴影线)
LTBKSLASH_FILL 6 以反斜线填充(阴影线)
HATCH_FILL 7 以直方网格填充
XHATCH_FILL 8 以斜网格填充
INTTERLEAVE_FILL 9 以间隔点填充
WIDE_DOT_FILL 10 以稀疏点填充
CLOSE_DOS_FILL 11 以密集点填充
USER_FILL 12 以用户定义式样填充