UNPKG

svg-path-d

Version:

SVG path data (path[d] attribute content) manipulation library.

36 lines 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bezier3 = exports.bezier2 = exports.clamp = exports.lerp = void 0; /** * Linear interpolation. * @param a start point * @param b stop point * @param t blend factor in the interval [0, 1] */ function lerp(a, b, t) { return a * (1 - t) + b * t; } exports.lerp = lerp; function clamp(a, b, c) { return Math.min(Math.max(a, b), c); } exports.clamp = clamp; /** * Quadratic Bezier Curve */ function bezier2(p0, p1, p2, t) { // p(t) = (1-t)^2 * p0 + 2 * (1-t) * t * p1 + t^2 * p2 var s = 1 - t; return s * s * p0 + 2 * s * t * p1 + t * t * p2; } exports.bezier2 = bezier2; /** * Cubic Bezier Curve */ function bezier3(p0, p1, p2, p3, t) { // p(t) = (1-t)^3 * p0 + 3 * (1-t)^2 * t * p1 + 3 * (1-t) * t^2 * p2 + t^3 * p3 var s = 1 - t; return s * s * s * p0 + 3 * s * s * t * p1 + 3 * s * t * t * p2 + t * t * t * p3; } exports.bezier3 = bezier3; //# sourceMappingURL=math1d.js.map