UNPKG

zrender

Version:

A lightweight graphic library providing 2d draw for Apache ECharts

27 lines (23 loc) 798 B
import { cubicAt, cubicRootAt } from '../core/curve'; import { trim } from '../core/util'; const regexp = /cubic-bezier\(([0-9,\.e ]+)\)/; export function createCubicEasingFunc(cubicEasingStr: string) { const cubic = cubicEasingStr && regexp.exec(cubicEasingStr); if (cubic) { const points = cubic[1].split(','); const a = +trim(points[0]); const b = +trim(points[1]); const c = +trim(points[2]); const d = +trim(points[3]); if (isNaN(a + b + c + d)) { return; } const roots: number[] = []; return (p: number) => { return p <= 0 ? 0 : p >= 1 ? 1 : cubicRootAt(0, a, c, 1, p, roots) && cubicAt(0, b, d, 1, roots[0]); }; } }