Line (Graphics)
Draws a line
Syntax
`
Line [target,] [[STEP] (x1, y1)]-[STEP] (x2, y2) [, [color][, [B|BF][, style]]]
or
Line - (x1, y1) [, [color][, [B|BF][, style]]]
`
Parameters
`target`
specifies buffer to draw on
`STEP`
indicates that the starting coordinates are relative
`(x1, y1)`
starting coordinates of the line
`STEP`
indicates that ending coordinates are relative
`(x2, y2)`
ending coordinates of the line
`color`
the color attribute.
`B|BF`
specifies box or box filled mode
`style`
line style
Description
Graphics statement that draws a straight line or a box between two points. The action will take place on the current work page set via ScreenSet, or onto the buffer Get/Put buffer if specified.
Line coordinates are affected by custom coordinates system set via Window and View (Graphics) statements, and respect clipping rectangle set by View (Graphics). If a pair of coordinates is preceded by the `STEP` keyword, the coordinates are assumed to be relative to the last graphics cursor position. If the `B` flag is specified, a rectangle will be drawn instead of a line, with `(x1,y1)-(x2,y2)` as the coordinates of the opposite rectangle corners. If `BF` is specified, a filled rectangle will be drawn.
`Color` denotes the color attribute, which is mode specific (see Color and Screen (Graphics) for details). If omitted, the current foreground color as set by the Color statement is used.
`Style`, if specified, allows styled line drawing; its value is interpreted as a 16bit bitmask, and Line will use it to skip pixel drawing. Starting at `(x1,y1)`, the most significant bit of the style mask is checked: if 1, the pixel is drawn, if 0, it's skipped. This repeats for all the line pixels with the other bits, with the mask being reused when the 16 bits are all checked.
When Line is used as Line - (x, y), a Line is Drawn from the previous coordinate to the one specified, and no `x2` or `y2` parameters are needed.
Example
`
'' draws a diagonal red line with a white box, and waits for 3 seconds
Screen 13
Line (20, 20)-(300, 180), 4
Line (140, 80)-(180, 120), 15, b
Line - ( 200, 200 ), 15
Sleep 3000
`
`
' Draws 2 lines with 2 different line styles in 2 different colors
ScreenRes 320, 240
Line (10, 100)-(309, 140), 4, B, &b1010101010101010 ' red box with dashed border
Line (20, 115)-(299, 115), 9, , &b1111000011111111 ' blue dashed line
Line (20, 125)-(299, 125), 10, , &b0000000011110000 ' green dashed line
Sleep
`
Differences from QB

- `target` is new to FreeBASIC

See also

- Circle
- Window
- View (Graphics)