📄 gra.htm
字号:
但TURBO C也提供了可以改变线型的函数。线型包括:宽度和形状。其中宽度只有
<br>
两种选择:
一点宽和三点宽。而线的形状则有五种。下面介绍有关线型的设置函
<br>
数。 </p>
<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。
</p>
<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, 则该象元打开,
否则该象元关闭。 </p>
<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>
} </p>
<p> 5. 封闭图形的填充 <br>
填充就是用规定的颜色和图模填满一个封闭图形。
</p>
<p> 一、先画轮廓再填充 <br>
TURBO C提供了一些先画出基本图形轮廓,
再按规定图模和颜色填充整个封 <br>
闭图形的函数。在没有改变填充方式时,
TURBO C以默认方式填充。 下面介绍这 <br>
些函数。 </p>
<p> void far bar(int x1, int y1,
int x2, int y2); <br>
确定一个以(x1, y1)为左上角,
(x2, y2)为右下角的矩形窗口, 再按规定图 <br>
模和颜色填充。 <br>
说明: 此函数不画出边框,
所以填充色为边框。 </p>
<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度的方向。 </p>
<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为终止角的椭圆扇形,
再按规定方式填充。 </p>
<p> 二、设定填充方式 <br>
TURBO C有四个与填充方式有关的函数。下面分别介绍:
</p>
<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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -