ts-useful
Version:
Functions for animation, color transitions, ecliptic, bezier, decasteljau, curves, three dimensional curves, smooth scrolling, random range, randomItem, mobius index, vectors, physics vectors, and easing.
24 lines • 723 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Decasteljau = void 0;
const lerp_1 = require("./lerp");
/**
*
* @param points number[]
* @param percent number
* @returns number
*/
const Decasteljau = (points, percent) => {
if (points.length === 1)
return points[0];
const results = [...points];
const calc = (p) => {
for (let i = 0, e = p.length - 1; i < e; i++)
results[i] = (0, lerp_1.Lerp)(p[i], p[i + 1], percent);
results.pop();
return results.length === 1 ? results[0] : calc(results);
};
return calc(results);
};
exports.Decasteljau = Decasteljau;
//# sourceMappingURL=decasteljau.js.map