curves

includes a set of primitives for parametric mapping of polynomials and rational curves of arbitrary degrees, and for drawing the corresponding basis functions

  • Basehermite returns the graph of the cubic Hermite basis polynomials
    Pre/Post conds (domain::ispol) => (ispol)
    Example basehermite:(intervals:1:20)

  • Beziercurve generator of coordinate functions of B´ezier curves of arbitrary degree. Alias for Bezier:S1
    Pre/Post conds (controlpoints::ismat) => (isseqof:isfun)
    Example beziercurve:< < 0,4,1>,< 7,5,-1>,< 8,5,1>,< 12,4,0>>

  • Bezierstripe generator of a 2D stripe generated by a Bezier curve of any degree
    Pre/Post conds (controlpoints::ismat; width::isreal;n::isintpos) => (ispol)
    Example Bezierstripe:< < < 0,0>,< 7,5>,< 8,5>,< 12,4>>,1,20>

  • Curve2mapvect coerces a vector function into a sequence of real maps
    Pre/Post conds (curve::isfun) => (isseqof:isfun)
    Example curve2mapvect:[cos ~ s1, sin ~ s1]

  • Derbernsteinbase derivative of the Bernstein/Bezier basis polynomials of degree n
    Pre/Post conds (n::isintpos) => (isseqof:isfun)
    Example derbernsteinbase:2

  • Derbernstein derivative of Bernstein polynomial of degree n and index i
    Pre/Post conds (n::isint)(i::isint) => (isfun)
    Example derbernstein:3:0

  • Derbezier generator of coordinate functions of the derivative of a B´ezier curve
    Pre/Post conds (controlpoints::ismat) => (isseqof:isfun)
    Example derbezier:< < 0,0>,< 7,5>,< 8,5>,< 12,4>>

  • Hermite generator of the coordinate functions of a cubic Hermite curve
    Pre/Post conds (handles::ismat) => (isseqof:isfun)
    Example MAP:(Hermite:< < 0,0>,< 1,1>,< -3,0>,< 3,0>>):(Intervals:1:20)

  • Norm2 generator of the coordinate functions of the normal unit field to a 2D curve
    Pre/Post conds (curve::and ~ [ispair,isseqof:isfun])
    => (and ~ [ispair,isseqof:isfun])
    Example (norm2 ~ derbezier):< < 0,0>,< 1,1>,< -3,0>,< 3,0>>

  • Rationalbezier rational B´ezier curves of arbitrary degree (weights on last coord)
    Pre/Post conds (controlpoints::ismat) => (isseqof:isfun)
    Example MAP:(RationalBezier:< < 1,0,1>,[id,id,id]:(SQRT:2/2),< 0,1,1>>):
    (Intervals:1:12)

  • Rationalblend linear comb. of basis with controlpoints, and normalization
    Pre/Post conds (basis::isseqof:isfun)(controlpoints::ismat) => (isseqof:isfun)
    Example rationalblend:(bernsteinbasis:s1:degree):controlpoints

  • Rationalize division of coordinate functions by the last element, then dropped out
    Pre/Post conds (coords::isseqof:isfun) => (isseqof:isfun)
    Example rationalize:(blend:(bernsteinbasis:s1:2):
    < < 1,1,1>,< -3,0,1>,< 3,0,1>>)

  • Rev reversing parametrization operator [a, b] => [b, a]
    Pre/Post conds (a,b::isreal) => (isfun)
    Example map:([cos,sin] ~ rev:< 0,pi> ~ s1):(intervals:pi:24)

PLaSM is Free Software and may be distributed under GNU LGPL