Skip to content


Composable for working with rectangles.

useRectangle({width: 200, height: 100})


The useRectangle function accepts a single configuration object as an argument, where each property has a default value if not provided.

width100The width of the rectangle.
height50The height of the rectangle.

extends Primitive Configuration

The following configuration parameters are applicable to all primitive shapes.

position{ x: 0, y: 0 }A 2D vector representing the position of the primitive.
rotation0The rotation of the primitive (in degrees).
scale1The scale factor of the primitive.

Example Usage

import {useRectangle} from 'vuexyz'

const width: Ref<number> = ref(100)
const height: Ref<number> = ref(50)
const {vertices, edges, faces} = useRectangle({width, height})


All primitive shapes return the following reactive members:

PropertyType DeclarationDescription
verticesComputedRef<Vertex[]>An array of all vertices.
edgesComputedRef<Edge[]>An array of all edges.
facesComputedRef<Face[]>An array of all faces.
centroidComputedRef<Vertex[]>The centroid (geometric center) of all vertices.
boundingBoxComputedRef<BoundingBox>The bounding box of the primitive, with properties x, y, width, height, maxX and maxY
svgPathComputedRef<string>An SVG path representing the shape of the primitive.
drawToCanvas(ctx: CanvasRenderingContext2D) => voidA method that draws the primitive to a canvas context.

Released under the MIT License.