Two point perspective grid on canvas.
npm install perspective-grid
import { PerspectiveGrid, Point } from "perspective-grid";
import canvasContext from "canvas-context";
const { context, canvas } = canvasContext("2d", {
width: window.innerWidth,
height: window.innerHeight,
});
// Alternatively pass [rows, columns] for a grid with different rows and column units
const grid = new PerspectiveGrid(10);
grid.init(
new Point(300, 380),
new Point(canvas.width - 300, 300),
new Point(canvas.width, canvas.height),
new Point(0, canvas.height)
);
grid.update();
// Operations on lines...
context.save();
grid.drawLines(context);
context.restore();
context.save();
grid.drawSquares(context);
context.restore();
// ...or simply draw
context.save();
grid.draw(context);
context.restore();
LineEquation defines a line equation or vertical
Param | Type | Description |
---|---|---|
lineParams | LineParams |
Line parameters |
x | number |
X position |
Point
Get intersection of two line equation
Kind: instance method of LineEquation
Param | Type |
---|---|
equation | LineEquation |
A faked ENUM for referencing line types.
Kind: Exported constant
Param | Type |
---|---|
VERTICAL | number |
HORIZONTAL | number |
number
number
number
number
Point
number
Object
Object
number
Point
Point
number
Kind: static constant of MathHelper
number
Kind: static constant of MathHelper
number
Kind: static constant of MathHelper
number
Get the distance between two points
Kind: static method of MathHelper
Returns: number
- Distance between point1 and point2
Param | Type | Description |
---|---|---|
point1 | Object |
First point |
point2 | Object |
Second point |
Point
Get the convergence point of two line equation
Kind: static method of MathHelper
Param | Type |
---|---|
m1 | number |
c1 | number |
m2 | number |
c2 | number |
number
Get the vertical convergence point from a X position
Kind: static method of MathHelper
Param | Type |
---|---|
x | number |
m | number |
c | number |
Object
Return line parameters
Kind: static method of MathHelper
Param | Type |
---|---|
x1 | number |
y1 | number |
x2 | number |
y2 | number |
Object
Get parallel line parameters
Kind: static method of MathHelper
Param | Type |
---|---|
line | number |
point | Point |
number
Get the distance to a line parameters
Kind: static method of MathHelper
Param | Type |
---|---|
line | Object |
point | Point |
Point
Get a projected point
Kind: static method of MathHelper
Param | Type |
---|---|
line | Object |
point | Point |
Point
Get the center of four points
Kind: static method of MathHelper
Param | Type |
---|---|
p1 | Point |
p2 | Point |
p3 | Point |
p4 | Point |
Two point perspective grid on canvas.
Note: Does not work correctly when there is only one vanishing point.
Creates an instance of PerspectiveGrid.
Param | Type | Description |
---|---|---|
units | number | Array.<number> |
Number of rows and columns (unit or [rows, columns]). |
[squares] | Array.<Point> |
Highlighted squares in the grid |
Reset the corners (clockwise starting from top left)
Kind: instance method of PerspectiveGrid
Param | Type | Description |
---|---|---|
tl | Point |
Top left corner |
tr | Point |
Top right corner |
br | Point |
Bottom right corner |
bl | Point |
Bottom left corner |
Draw the grid in the instance context
Kind: instance method of PerspectiveGrid
Param | Type | Description |
---|---|---|
context | CanvasRenderingContext2D |
The context to draw the grid in |
Update grid segments
Kind: instance method of PerspectiveGrid
Array.<Point>
Get the four vertices of a point in grid
Kind: instance method of PerspectiveGrid
Param | Type |
---|---|
column | number |
row | number |
Point
Get the center point from grid unit to pixel eg. (1, 1) is the first top left point
Kind: instance method of PerspectiveGrid
Param | Type |
---|---|
column | number |
row | number |
Actually draw the lines (vertical and horizontal) in the context
Kind: instance method of PerspectiveGrid
Param | Type | Description |
---|---|---|
context | CanvasRenderingContext2D |
The context to draw the grid in |
Draw highlighted squares in the grid
Kind: instance method of PerspectiveGrid
Param | Type | Description |
---|---|---|
context | CanvasRenderingContext2D |
The context to draw the grid in |
Draw a single point in the grid useful for debug purpose
Kind: instance method of PerspectiveGrid
Param | Type | Description |
---|---|---|
context | CanvasRenderingContext2D |
The context to draw the grid in |
point | Point |
|
radius | number |
|
color | string |
Object
Get a line parallel to the horizon
Kind: instance method of PerspectiveGrid
Param | Type |
---|---|
vVanishing | Point |
hVanishing | Point |
Boolean
An object that defines a Point
Param | Type | Description |
---|---|---|
x | number |
x coordinate |
y | number |
y coordinate |
Boolean
Check if a point is in a list of points
Kind: instance method of Point
Param | Type | Description |
---|---|---|
list | Array.<Point> |
Array of Points |
An object with two points that defines a segment
Param | Type | Description |
---|---|---|
p1 | Point |
First point |
p1 | Point |
Second point |
Point
Get intersection of two segments
Kind: instance method of Segment
Param | Type |
---|---|
segment | Segment |
MIT. See license file.