background image

getlinesettings(info);  
另外还有一个对画线特性的规定:  
void far setwritemode(int mode);  
如果 mode=0,则表示画线时将所画位置的原图形覆盖(默认方式),如果 mode=1,则表示
画线时用现在特性的线与原有的线进行异或操作,实际上画出的线是原有线与现在规定
的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于画一次线然
后擦除。如果用 mode=1 进行重画并不影响背景图像。也就是说,假如做一个动画,背景是
静止的,前景是运动的,那我么只要不断对前景进行异或,前景就会不断变化而不影响
背景。

 

填充和填充模式
1

 

先画轮廓再填充

 void far bar(int x1, int y1, int x2, int y2); 
 void far bar3d(int x1, int y1, int x2, int y2, int depth, int topflag); 
 void far pieslice(int x, int y, int stangle, int endangle, int radius); 
 void far sector(int x, int y, int stangle, int xradius, int yradius); 
2

 

规定填充模式

 向封闭区域内填充有 12

 

种模式。

 void far setfillstyle(int pattern, int color); 
 名字

 值 

 

意义

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_DOT_FILL 11 

 

以密集点填充

USER_FILL 12 

 

以用户定义式样填充

 void far setfillpattern(char *upattern, int color); 
其中 upattern 是一个指向 8 个字节的指针。这 8 个字节定义了 8*8 点阵的图形。每个字节的
8 位二进制数表示水平 8 个点,8 个字节共表示 8 行,然后依次为模型向整个封闭区域填

 


 void far getfillpattern(char *upattern); 
该函数将用户自定义的填充花样存入 upattern

 

指针指向的内存区域

 void far getfillsetings(struct fillsettingstype far *fillinfo); 
 struct fillsettingstype 
 {int pattern; 
 int color; 
 }