Gets the center coordinate of the canvas
Gets the drawing context
Returns the width or height, whichever is largest
Returns the width or height, whichever is smallest
Gets the current scaling ratio being used to compensate for high-DPI display
Returns a Scaler that converts from relative to absolute coordinates. This is based on the canvas size.
// Assuming a canvas of 800x600
toAbsolute({ x: 1, y: 1 }); // { x: 800, y: 600}
toAbsolute({ x: 0, y: 0 }); // { x: 0, y: 0}
toAbsolute({ x: 0.5, y: 0.5 }); // { x: 400, y: 300}
Returns a Scaler that converts from absolute to relative coordinates. This is based on the canvas size.
* // Assuming a canvas of 800x500
toRelative({ x: 800, y: 600 }); // { x: 1, y: 1 }
toRelative({ x: 0, y: 0 }); // { x: 0, y: 0 }
toRelative({ x: 400, y: 300 }); // { x: 0.5, y: 0.5 }
Adds event listener.
Events
Event name
Event handler
Clears the canvas.
Shortcut for:
ctx.clearRect(0, 0, this.width, this.height)
Optional
reason: stringFills the canvas with a given colour.
Shortcut for:
* ctx.fillStyle = ``;
ctx.fillRect(0, 0, this.width, this.height);
Optional
colour: stringColour
Protected
fireFire event
Type of event
Arguments for event
Creates a drawing helper for the canvas. If one is already created it is reused.
Gets the image data for the canvas. Uses the 'physical' canvas size. Eg. A logical size of 400x400 might be 536x536 with a high-DPI display.
Gets the drawable area of the canvas. This accounts for scaling due to high-DPI displays etc.
Returns the canvas frame data as a writable grid.
When editing, make as many edits as needed before calling
flip
, which writes buffer back to the canvas.
* const g = helper.getWritableBuffer();
// Get {r,g,b,opacity} of pixel 10,10
const pixel = g.get({ x: 10, y: 10 });
// Set a colour to pixel 10,10
g.set({ r: 0.5, g: 1, b: 0, opacity: 0 }, { x: 10, y: 10 });
// Write buffer to canvas
g.flip();
Uses 'physical' size of canvas. Eg with a high-DPI screen, this will mean a higher number of rows and columns compared to the logical size.
Remove event listener
A wrapper for the CANVAS element that scales the canvas for high-DPI displays and helps with resizing.
Draw whenever it is resized using the 'resize' event
Or provide a function when initialising:
Automatically draw at animation speeds: