UNPKG

@thi.ng/geom-splines

Version:

nD cubic & quadratic curve analysis, conversion, interpolation, splitting

22 lines (21 loc) 530 B
import { mixN } from "@thi.ng/vectors/mixn"; import { set } from "@thi.ng/vectors/set"; const cubicFromQuadratic = (a, b, c) => [ set([], a), mixN([], a, b, 2 / 3), mixN([], c, b, 2 / 3), set([], c) ]; const quadraticFromCubic = (a, b, c, d, gamma = 0.5) => { const qb = mixN([], a, b, 1.5 * gamma); const qd = mixN([], d, c, 1.5 * (1 - gamma)); const qc = mixN([], qb, qd, gamma); return [ [set([], a), qb, qc], [set([], qc), qd, set([], d)] ]; }; export { cubicFromQuadratic, quadraticFromCubic };