setlinestyle
raw OCR
Sets the current line width and style.
Defined in header <graphics.h>
Syntax
#include <graphics.h>
void far setlinestyle(int linestyle,unsigned upattern, int thickness);
setlinestyle sets the style for all lines drawn by line, lineto, rectangle,
drawpoly, and so on.
The linesettingstype structure is defined in graphics.h as follows:
struct linesettingstype {
int linestyle;
unsigned upattern;
int thickness;
linestyle specifies in which of several styles subsequent lines will be drawn
(such as solid, dotted, centered, dashed). The enumeration line_styles,
defined in graphics.!"!, gives names to these operators: •
Name Value Description
SOLID LINE 0 Solid line
DOTTED LINE 1 Dotted line
CENTER LINE 2 Centered line
DASHED LINE 3 Dashed line
USERBIT LINE 4 User-defined line style
thickness specifies whether the width of subsequent lines drawn will be
normal or thick.
Name Value Description
NORM_WIDTH 1 pixel wide
THICK WIDTH 3 pixels wide
upattern is a 16-bit pattern that applies only if linestyle isUSERBIT_LINE
(4). In that case, whenever a bit in the pattern word is 1, the corresponding
pixel in the line is drawn in the current drawing color. For example, a
solid line corresponds to a upattern of 0xFFFF (all pixels drawn), while a
dashed line can correspond to a upattern of 0x3333 or OxOFOF. If the
linestyle parameter to setlinestyle is not USERBIT_LINE (in other words, if
it is not equal to 4), you must still provide the upattern parameter, but it
will be ignored.
The linestyle parameter does not affect arcs, circles, ellipses,or pie slices.
Only the thickness parameter is used.
Portability
| DOS | UNIX | Windows | ANSI C | C++ only |
|---|---|---|---|---|
| ■ |
Return value
If invalid input is passed to setlinestyle, graphresult returns -11, and the current line style remains unchanged.
See also
Example
#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
/* the names of the line styles supported */
char nname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE",
"USERBIT_LINE" };
int main(void)
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode;
int style, midx, midy, userpat;
char stylestr[40];
/* initialize graphics and local variables */
initgraphi&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) { /* an error occurred */
printf("Graphics error: %s\n", grapherrormsg(errorcode)) ;
printf("Press any key to halt:");
getchO;
exit(l); /* terminate with an error code */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* a user-defined line pattern */
/* binary: "0000000000000001" */
userpat = 1;
for (style=SOLID_LINE; style<=USERBIT_LINE; style++)
{
/* select the line style */
setlinestyle(style, userpat, 1);
/* convert style into a string */
strcpy(stylestr, Iname[style]);
/* draw a line */
line(0, 0, midx-10, midy);
/* draw a rectangle */
rectangle(0, 0, getmaxxO, getmaxyO);
/* output a message */
outtextxy(midx, midy, stylestr);
/* wait for a key */
getchO ;
cleardeviceO ;
}
/* clean up */
closegraph();
return 0;
}
Differences from modern implementations
Nothing recorded yet.
Modern references
These are search links, not yet checked by hand.
Stable link: /3.1/graphics.h/setlinestyle/
· short form /3.1/setlinestyle/