Graphics statement to draw a circle
Syntax
Circle [target,] [STEP] (x,y), radius[, [color][, [start][, [end][, [aspect][, F]]]]]
Parameters
target
specifies buffer to draw on.
STEP
indicates that coordinates are relative
(x, y)
coordinates of the circle's center.
radius
radius
color
the color attribute.
start
starting angle
end
ending angle
aspect
aspect ratio
F
fill mode indicator
Description
Circle will draw a circle, ellipse, or arc based on the parameters given to it.
target specifies buffer to draw on.
target may be an image created with
ImageCreate or
Get (Graphics). If omitted,
target defaults to the screen's current work page. (See
ScreenSet)
The center of the shape will be placed on the destination surface at
(X,Y).
Radius denotes the radius of the shape. If aspect ratio is used, the biggest radius must be given here.
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.
The
STEP option specifies that
X and
Y are offsets relative to the current graphics cursor position.
start and
end are angles are in
radians. These can range -2PI to 2PI; if you specify a negative angle, its value is changed sign and a line is drawn from the center up to that point in the arc. End angle can be less than start angle. If you do not specify start and end, a full circle/ellipse is drawn; if you you specify start but not end, end is assumed to be 2PI; if you specify end but not start, start is assumed to be 0.
aspect is the aspect ratio, or the ratio of the y radius over the x radius. The default value is the value required to draw a perfect circle on the screen, keeping pixel aspect ratio in mind. This value can be calculated as follows:
ratio = (y_radius / x_radius) * pixel_aspect_ratio
Where pixel_aspect_ratio is the ratio of the current mode width over the current mode height, assuming a 4:3 standard monitor. If aspect ratio is less than 1, radius is the x radius; if aspect is more or equal to 1, radius is the y radius.
'f' is the fill flag. If you specify this flag, the circle/ellipse will be filled with the selected color. This has no effect if you're drawing an arc.
Custom coordinates system set up by
Window and/or
View (Graphics) affect the drawing operation; clipping set by
View also applies. When
Circle finishes drawing, the current graphics cursor position is set to the supplied center.
Example
' Set 640x480 mode, 256 colors
Screen 18
' Draws a circle in the center
Circle (320, 240), 200, 15
' Draws a filled ellipse
Circle (320, 240), 200, 2, , , 0.2, F
' Draws a small arc
Circle (320, 240), 200, 4, 0.83, 1.67, 3
Sleep
Differences from QB
- target is new to FreeBASIC
- The FreeBASIC implementation uses a different algorithm for ellipse/arc drawing than QB, so the result may not be equal to QB for every pixel.
- The F flag to draw filled circles/ellipses is new to FreeBASIC.
See also