# generative-toolbelt.circle

A set of functions to create, manage, and draw Circles.
Circles are sets with a Point and a number like this: {:c {:x 100 :y 100} :r 50}.

### draw-circle

`(draw-circle c)`

Draws a Circle into the current graphics canvas.

### make-circle

`(make-circle c r)`

Creates a Circle with a Point and an absolute value.
Returns a Circle.

### make-ellipse

`(make-ellipse c r1 r2)`

Creates a Ellipse with absolutes coordinates.
Returns a Ellipse.

### mkcr

`(mkcr cx cy r)`

Creates a Circle with canvas-relative coordinates.
Returns a Circle.

### mkel

`(mkel cx cy r1 r2)`

Creates a Ellipse with canvas-relative coordinates.
Returns a Ellipse.

### point-on-circle

`(point-on-circle {:keys [c r]} angle)`

Creates a Point from a Circle and an angle in radians.
Returns a Point.

### point-on-ellipse

`(point-on-ellipse {:keys [c r1 r2]} angle)`

Creates a Point from a Ellipse and an angle in radians.
Returns a Point.

### points-on-circle

`(points-on-circle n circle)`

`(points-on-circle n circle from to)`

Returns a sequence of `n` Points from a Circle.
`from` and `to` can be defined as angles in degrees to target only a
certain portion of the Circle instead of the full circle.

### points-on-ellipse

`(points-on-ellipse n ellipse)`

`(points-on-ellipse n ellipse from to)`

Returns a sequence of `n` Points from a Ellipse.
`from` and `to` can be defined as angles in degrees to target only a
certain portion of the Ellipse instead of the full circle.