Circle
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

- `Screen (Graphics)`
- `Color`