📄 王大刚--c语言编程宝典--图形函数.htm
字号:
<P> void far setlinestyle(int
linestyle, unsigned upattern, int
<BR>thickness); <BR> 该函数用来设置线的有关信息, 其中linestyle是线形状的规定,
见表5。 <BR> 表5.
有关线的形状(linestyle) <BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
符号常数
数值 含义
<BR>───────────────────────── <BR>
SOLID_LINE
0 实线
<BR>
DOTTED_LINE
1 点线
<BR>
CENTER_LINE
2 中心线
<BR>
DASHED_LINE
3 点画线
<BR>
USERBIT_LINE
4 用户定义线
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR> thickness是线的宽度,
见表6。 <BR>
<P> 表6.
有关线宽(thickness) <BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
符号常数
数值 含义
<BR>───────────────────────── <BR>
NORM_WIDTH
1
一点宽 <BR>
THIC_WIDTH
3
三点宽 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR> 对于upattern,
只有linestyle选USERBIT_LINE 时才有意义( 选其它线型,
<BR>uppattern取0即可)。此进uppattern的16位二进制数的每一位代表一个象元, 如 <BR>果那位为1, 则该象元打开,
否则该象元关闭。 <BR>
<P> void far getlinesettings(struct
linesettingstype far *lineinfo);
<BR>
该函数将有关线的信息存放到由lineinfo 指向的结构中, 表中
<BR>linesettingstype的结构如下:
<BR> struct
linesettingstype{
<BR>
int linestyle;
<BR>
unsigned upattern;
<BR>
int thickness; <BR>
} <BR> 例如下面两句程序可以读出当前线的特性 <BR>
struct linesettingstype *info; <BR>
getlinesettings(info); <BR> <BR> void far
setwritemode(int mode); <BR> 该函数规定画线的方式。如果mode=0,
则表示画线时将所画位置的原来信息 <BR>覆盖了(这是TURBO C的默认方式)。如果mode=1, 则表示画线时用现在特性的线
<BR>与所画之处原有的线进行异或(XOR)操作, 实际上画出的线是原有线与现在规定 <BR>的线进行异或后的结果。因此,
当线的特性不变, 进行两次画线操作相当于没有 <BR>画线。 <BR> 有关线型设定和画线函数的例子如下所示。
<BR> 例10. <BR>
#include<stdlib.h> <BR>
#include<graphics.h> <BR> int main()
<BR> {
<BR> int gdriver,
gmode, i; <BR>
gdriver=DETECT; <BR>
registerbgidriver(EGAVGA_driver);
<BR>
initgraph(&gdriver, &gmode, "");
<BR>
setbkcolor(BLUE);
<BR> cleardevice();
<BR>
setcolor(GREEN);
<BR> circle(320,
240, 98); <BR>
setlinestyle(0, 0, 3); /*设置三点宽实线*/
<BR> setcolor(2);
<BR> rectangle(220,
140, 420, 340); <BR>
setcolor(WHITE);
<BR> setlinestyle(4,
0xaaaa, 1); /*设置一点宽用户定义线*/
<BR> line(220, 240,
420, 240); <BR>
line(320, 140, 320, 340);
<BR> getch();
<BR> closegraph();
<BR> return 0;
<BR> } <BR>
<P> 5. 封闭图形的填充 <BR>
填充就是用规定的颜色和图模填满一个封闭图形。 <BR>
<P> 一、先画轮廓再填充 <BR> TURBO
C提供了一些先画出基本图形轮廓, 再按规定图模和颜色填充整个封 <BR>闭图形的函数。在没有改变填充方式时, TURBO
C以默认方式填充。 下面介绍这 <BR>些函数。 <BR>
<P> void far bar(int x1, int y1, int x2, int y2);
<BR> 确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图
<BR>模和颜色填充。 <BR> 说明: 此函数不画出边框, 所以填充色为边框。 <BR>
<P> void far bar3d(int x1, int y1, int x2, int
y2, int depth, int <BR>topflag);
<BR> 当topflag为非0时, 画出一个三维的长方体。当topflag为0时, 三维图形不 <BR>封顶,
实际上很少这样使用。 <BR> 说明: bar3d()函数中, 长方体第三维的方向不随任何参数而变,
即始终为 <BR>45度的方向。 <BR>
<P> void far pieslice(int x, int y, int stangle,
int endangle, int <BR>radius); <BR>
画一个以(x, y)为圆心, radius为半径, stangle为起始角度, endangle 为 <BR>终止角度的扇形,
再按规定方式填充。当stangle=0, endangle=360 时变成一个 <BR>实心圆, 并在圆内从圆点沿X轴正向画一条半径。
<BR> <BR> void far sector(int x, int
y, int stanle, intendangle, int
<BR>xradius, int yradius); <BR> 画一个以(x, y)为圆心分别以xradius,
yradius为x轴和y轴半径, stangle <BR>为起始角, endangle为终止角的椭圆扇形, 再按规定方式填充。 <BR>
<P> 二、设定填充方式 <BR> TURBO
C有四个与填充方式有关的函数。下面分别介绍: <BR>
<P> void far setfillstyle(int pattern, int color);
<BR> color的值是当前屏幕图形模式时颜色的有效值。pattern的值及与其等价的
<BR>符号常数如表7所示。
<BR> 表7.
关于填充式样pattern的规定 <BR> ━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR>
符号常数
数值 含义 <BR>
─────────────────────────── <BR>
EMPTY_FILL
0 以背景颜色填充
<BR>
SOLID_FILL
1 以实填充
<BR>
LINE_FILL
2 以直线填充
<BR>
LTSLASH_FILL
3 以斜线填充(阴影线)
<BR>
SLASH_FILL
4 以粗斜线填充(粗阴影线)
<BR>
BKSLASH_FILL
5 以粗反斜线填充(粗阴影线)
<BR>
LTBKSLASH_FILL
6 以反斜线填充(阴影线)
<BR>
HATCH_FILL
7 以直方网格填充
<BR>
XHATCH_FILL
8 以斜网格填充
<BR> INTTERLEAVE_FILL
9 以间隔点填充
<BR>
WIDE_DOT_FILL
10 以稀疏点填充
<BR>
CLOSE_DOS_FILL
11 以密集点填充
<BR>
USER_FILL
12 以用户定义式样填充
<BR> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
<P> 除USER_FILL(用户定义填充式样)以外, 其它填充式样均可由setfillstyle()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -