useEllipse
Hook used to a basic ellipse.
Configuration
(EllipseConfig | undefined) useEllipse
accepts following configurations:
Property | Type | Default | Description |
---|---|---|---|
xRadius | number | 100 | Semi major axis of the ellipse. |
yRadius | number | 60 | Semi minor axis of the ellipse. |
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
Currently, useEllipse uses useCircle
under the hood by scaling the circle with xRadius
and yRadius
to create an ellipse.
In future, we may provide more configuration for ellipse, i.e. through focal point, directrix or cone intersection.
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<EllipseConfig>) => void | Callback to update the configuration of the primitive. |
Example
import { useEllipse } from "react-use-polygon";
const ellipse = useEllipse({ xRadius: 100, yRadius: 50 });