UNPKG

transformation-matrix

Version:

2d transformation matrix functions written in ES6 syntax. Tree shaking ready!

28 lines (26 loc) 822 B
/** * Calculate a point transformed with an affine matrix * @param matrix {Matrix} Affine Matrix * @param point {Point} Point * @returns {Point} Point */ export function applyToPoint (matrix, point) { return Array.isArray(point) ? [ matrix.a * point[0] + matrix.c * point[1] + matrix.e, matrix.b * point[0] + matrix.d * point[1] + matrix.f ] : { x: matrix.a * point.x + matrix.c * point.y + matrix.e, y: matrix.b * point.x + matrix.d * point.y + matrix.f } } /** * Calculate an array of points transformed with an affine matrix * @param matrix {Matrix} Affine Matrix * @param points {Point[]} Array of point * @returns {Point[]} Array of point */ export function applyToPoints (matrix, points) { return points.map(point => applyToPoint(matrix, point)) }