# circle2

1.1.1 • Public • Published

## install

``````npm install circle2
``````

## use

Where `origin` adheres to the following form:

• `[0, 1]`
• `{ x: 0, y: 1}`

and `radius` is a number

Note: the arguments to the `Circle` function are optional. If none are passed `circle.position` will be `0, 0` and `circle.radius` will be `1`

You can also pass in a 3 points and have the circle computed from them:

or an 3-item array of `Vec2`

Note: changing the passed `Vec2`s will change the circle

### Instance Methods

Get/Set the radius of the circle

containsPoint(point)

Where `point` looks like one of the following:

• `[0, 1]`
• `{ x: 0, y: 1 }`
• `new Vec2(0, 1)`

This function will return `true` if the passed point is inside or right on the boundary of the circle.

contains(thing)

Where `thing` meets the following criteria:

• has `.position` and `.radius()` - circle
• has a function `.points()` or array `.points` - polygon
• has `.x1`, `.y1`, `.x2`, and `.y2` - rectangle
• has `.x`, `.y`, `.w`, and `.h` - rectangle
• has `.x`, `.y`, `.width`, and `.height` - rectangle

This method will return `true` if the passed `thing` is completely inside, and false otherwise.

Note: if the points of `thing` are on the circumference of the circle, this method will return `true`

change(fn)

This is a method that you want to have called any time the circle changes. Either in `radius` or `position`

ignore([fn])

Takes an optional `fn` parameter which if passed will remove the specified listener.

If no `fn` is passed, all the listeners will be removed.

notify()

Force listeners to be called.

area()

Returns the area `PI * r^2`

circumference()

Returns the circumference `PI * r*2`

intersectCircle(circle)

Performs an intersection between this circle and the incoming. Results are as follows:

• `false` - no intersection or one circle is contained in the other
• `[]` - same circles
• `[Vec2]` - single intersection
• `[Vec2, Vec2]` - two intersection points

toSegments([segments])

Convert this circle into a series of points representing the outline of this circle

## Package Sidebar

### Install

`npm i circle2`

### Repository

github.com/tmpvar/circle2

1,196

1.1.1