Polygon class
An arbitrary polygon with 3 or more vertices.
The vertices of the polygon are in the counter-clockwise order, so that the polygon's interior is in your left-hand side as you traverse the polygon's vertices.
A polygon can be either convex or not, the containsPoint method will work in both cases, however, the method used with convex polygon is faster.
Constructors
Properties
- aabb → Aabb2
-
The axis-aligned bounding box of the shape.
no setteroverride
- center → Vector2
-
The central point of the shape.
no setteroverride
-
edges
→ List<
Vector2> -
The edges (sides) of the polygon.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- isClosed → bool
-
True if the shape is "closed", in the sense that it has an interior. For
example, a closed shape can be filled with a paint.
no setterinherited
- isConvex → bool
-
True if the shape is convex, i.e. a line segment connecting any two points
of the shape would lie completely within the shape.
no setteroverride
- perimeter → double
-
The length of the shape's boundary. For some more complicated shapes this
can be computed approximately.
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
vertices
→ List<
Vector2> -
The vertices (corners) of the polygon.
no setter
Methods
-
asPath(
) → Path -
Converts the shape to a Path object, suitable for rendering on a canvas.
If a particular geometric primitive cannot be represented as a Path
faithfully, an approximate path can be returned.
override
-
containsPoint(
Vector2 point) → bool -
Returns true if the given
point
is inside the shape or on the boundary.override -
move(
Vector2 offset) → void -
Translates the shape by the specified
offset
vector, in-place.override -
nearestPoint(
Vector2 point) → Vector2 -
Returns a point on the shape's boundary which is closest to the given
point
.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
project(
Transform2D transform, [Shape? target]) → Shape -
Returns the result of applying an affine transformation to the shape.
override
-
randomPoint(
{Random? random, bool within = true}) → Vector2 -
Returns a random point within the shape if
within
is true (default) and otherwise a point along the edges of the shape. Do note thatwithin
=true also includes the edges.override -
support(
Vector2 direction) → Vector2 -
Finds the intersection of this shape with another one, if it exists.
Returns a point on the boundary that is furthest in the given
direction
.override -
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
randomPointAlongEdges(
List< Vector2> vertices, {Random? random}) → Vector2 -
Returns a random point on the
vertices
.