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.
20 lines • 569 B
JavaScript
import { Lerp } from './lerp';
/**
*
* @param points number[]
* @param percent number
* @returns number
*/
export 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] = Lerp(p[i], p[i + 1], percent);
results.pop();
return results.length === 1 ? results[0] : calc(results);
};
return calc(results);
};
//# sourceMappingURL=decasteljau.js.map