var cr = Delta.curve('curveName', [10, 10]); // 3rd arg - path
Методы:
attrboundsstartAtendAtcloneCurvesMath
pointAt - для всех canvas curves.tangentAt, normalAtlengthnearestapprox - деление кривой на линии и reduce по ним.intersectionboundsdrawFrom / drawUntil (works on splitAt or pointAt)Line
splitAt
— intersect - true / falseintersection - array or 'same' if det == 0longate - продолжает кривую за t < 0 или t > 1 (а затем превращает в валидную, где t in [0, 1])QuadBezier:
splitAtbounds; bounds('tight')lengthintersection - (with lines & quad & cubic & convertible to cubic)toCubicBezierlongate - продолжает кривую за t < 0 или t > 1 (а затем превращает в валидную, где t in [0, 1])manipulate(t, x, y) - меняет кривую, чтобы она проходила через (x, y) в tfit()?offset(weight), offset(weightstart, weightend)CubicBezier:
splitAtbounds; bounds('tight')lengthintersectiontoCubicBezierlongate - продолжает кривую за t < 0 или t > 1 (а затем превращает в валидную, где t in [0, 1])manipulate(t, x, y) - меняет кривую, чтобы она проходила через (x, y) в tfit()?offset(weight), offset(weightstart, weightend)(QuadBezier, CubicBezier, CatmullRom).fromThreePoints(...)
Добавить параметр tension?
GeneralBezier (bezier of any power)
CatmullRom
BSpline
Lagrange
Animations: curve.animate('morph', ...); // is proxed to path.animate curve.animate('x', ...) // также, может, анимировать параметры gradientcurve, ribbon и rogue curve?
Параметры:
argumentsx, yhx, hyh1x, h1y, h2x, h2yradius, start, end, clockwisex1, y1, x2, y2, radius, clockwise// мб другое название RogueCurve:
strokevisibleGradientCurve / Ribbon:
width: [start, end] or funcwidthEase: func(t) -> [0, 1]color: CurveGradientcolorEaseRibbon:
ribbon - true / false// ------- PathUtils: pointAt, tangentAt, length, nearest
CurvesXOR -> PathXOR
Path :: toCubicBezier() Path :: toLines()
Path :: simplify(); Path :: smooth(); // и т.п.