useRectangle
Hook used to a rectangle.
It can be created with width
and height
configurations.
Configuration
(RectangleConfig | undefined) useRectangle
accepts following configurations:
Property | Type | Default | Description |
---|---|---|---|
width | number | 100 | Width of the rectangle. |
height | number | 50 | Height of the rectangle. |
extends
Primitive Configuration
(PrimitiveConfig) Base configurations for all primitives.
Property | Type | Default | Description |
---|---|---|---|
scale | number | Vertex | 1 | Scaling factor of the primitive. If Vertex is provided, it will scale x and y dimension accordingly (optional). |
rotate | number | 0 | Rotation of the primitive, in degrees, in clockwise manner (optional). |
position | Vertex | { x: 0, y: 0 } | Moving distance away from the primitive drawing centre. By default, primitive will start drawing in origin (0, 0) (optional). |
info
scale
, rotate
and position
can be considered as transformation of polygon after drawn, where position
can be considered as transform: translate
of css to the primitive.
The polygon will first be scaled, then rotated and lastly, translated.
note
useRectangle
always follows usePolygon
which drawing vertex in counter-clockwise manner.
Returns
(Primitive) All primitive return the following properties:
Property | Type | Description |
---|---|---|
vertices | Vertex[] | Vertices of the primitive. |
edges | Edge[] | Edges of the primitive. |
faces | Face[] | Faces of the primitive. |
centroid | Vertex | Centroid (geometric centre) of primitive. |
boundingBox | BoundingBox | Space constraint of the primitive, with properties x , y , width and height . |
svgPath | string | SVG path representing the shape of the primitive. |
drawToCanvas | (ctx: CanvasRenderingContext2D) => void | Callback that draws the primitive to a canvas context. |
modifyConfig | (newConfig: Partial<RectangleConfig>) => void | Callback to update the configuration of the primitive. |
Example
import { useRectangle } from "react-use-polygon";
// A rectangle
const rectangle = useRectangle({ length: 100, length: 50 });