splines

uniform and non-uniform polynomial and rational spline  curve generators, including cardinal splines, B-splines and NURBS

  • Blend generator of the coordinate functions of a specific spline curve
    Pre/Post conds (basis::isseqof:isfun) (controlpoints::ismat) => (isseqof:isfun)
    Example blend:(bsplinebasis:4:< 0,0,0,0,1,2,3,4,4,4,4>):
    < < 0.1,0>,< 2,0>,< 6,1.5>,< 6,4>,< 2,5.5>,< 2,6>,< 3.5,6.5>>

  • Bsplinebasis non-uniform B-spline basis generator with assigned order and knots
    Pre/Post conds (order::isnat) (knots::isseqof:isreal) => (isseqof:isfun)
    Example bsplinebasis:4:< 0,0,0,0,1,2,3,4,4,4,4>

  • Bspline non-uniform B-spline curve of assigned degree, knots and points
    Pre/Post conds (dom::and ~ [ispol,c:eq:< 1,1> ~ [dim,rn]])(degree::isnat)
    (knots::isseqof:isreal)(points::ismat) => (ispol)
    Example bspline:(intervals:1:10):3:< 0,0,0,0,1,2,3,4,4,4,4>:
    < < 0,0>,< -1,2>,< 1,4>,< 2,3>,< 1,1>,< 1,2>,< 2.5,1>>

  • Cubiccardinalbasis constant value. Cubic cardinal polynomial basis
    Pre/Post conds => (isseqof:isfun)
    Example blend:cubiccardinalbasis:< < -1,0>,< -1,2>,< 1,4>,< 2,3>,< -4,2>>

  • Cubiccardinal generator of the function argument to the spline operator,
    independent on the control points
    Pre/Post conds (segmentdomain::ispol) => (isfun)
    Example spline:(cubiccardinal:(intervals:1:10)):
    < < -3,6>,< -4,2>,< -3,-1>,< -1,1>,< 1.5,1.5>,< 3,4>>

  • Cubicubsplinebasis constant value. Cubic uniform b-spline polynomial basis
    Pre/Post conds => (isseqof:isfun)
    Example blend:Cubicubsplinebasis:< < -1,0>,< -1,2>,< 1,4>,< 2,3>,< -4,2>>

  • Cubicubspline generator of the function argument to the spline operator,
    independent on the control points
    Pre/Post conds (segmentdomain::ispol) => (isfun)
    Example spline:(cubicubspline:(intervals:1:10)):
    < < -3,6>,< -4,2>,< -3,-1>,< -1,1>,< 1.5,1.5>,< 3,4>>

  • Deboor generator of a non-uniform b-spline basis polynomial
    Pre/Post conds (knots::isseqof:isreal) => (isfun)
    Example map:[s1,deboor:< 2,3,4,5>]:(intervals:5:50)

  • Displaynubspline returns a non-uniform b-spline, with control polygon and joints
    Pre/Post conds (degree::isnat; knots::isseq ; points::isseq) => (ispol)
    Example displaynubspline:< 2,< 0,0,0,1,2,3,4,5,5,5>,
    < < 0.1,0>,< 2,0>,< 6,1.5>,< 6,4>,< 2,5.5>,< 2,6>,< 3.5,6.5>> >

  • Displaynurbspline returns a nurb spline, with control polygon and joints
    Pre/Post conds (degree::isnat; knots::isseq ; points::isseq) => (ispol)
    Example displaynurbspline:< 2,< 0,0,0,1,2,3,4,5,5,5>, < < 0.1,0,1>,
    < 2,0,1>,< 6,1.5,1>,< 6,4,1>,< 2,5.5,1>,< 2,6,1>,< 3.5,6.5,1>> >

  • Joints is used to apply a marker to each sampled point of the spline curve
    Pre/Post conds (thespline::isfun) => (isfun)
    Example joints:cubiccardinal:< < -3,6>,< -4,2>,< -3,-1>,< -1,1>,< 1.5,1.5>>

  • Nubsplineknots returns the 0D complex of joints between nub-spline segments
    Pre/Post conds (degree::isnat)(knots::isseq)(points::isseq) => (ispol)
    Example (polymarker:2~s1~ukpol~nubsplineknots:2:< 0,0,0,1,2,3,4,4,4>):
    < < 0.1,0>,< 2,0>,< 6,1.5>,< 6,4>,< 2,5.5>,< 2,6>>

  • Nubspline non-uniform B-spline curve of assigned degree, knots and points
    Pre/Post conds (degree::isnat)(knots::isseqof:isreal)(points::ismat)=>(ispol)
    Example nubspline:2:< 0,0,0,1,2,3,4,5,5,5>:
    < < 0,0>,< -1,2>,< 1,4>,< 2,3>,< 1,1>,< 1,2>,< 2.5,1>>

  • Nurbsplineknots returns the 0D complex of joints between nurb spline segments
    Pre/Post conds (degree::isnat)(knots::isseq)(points::isseq) => (ispol)
    Example (polymarker:2~s1~ukpol~nurbsplineknots:2:< 0,0,0,1,2,3,4,4,4>):
    < < 0.1,0,1>,< 2,0,1>,< 6,1.5,1>,< 6,4,1>,< 2,5.5,1>,< 2,6,1>>

  • Nurbspline nurb spline curve of assigned degree, knots and points
    Pre/Post conds (degree::isnat)(knots::isseqof:isreal)(points::ismat)=>(ispol)
    Example nubspline:2:< 0,0,0,1,2,3,4,5,5,5>:
    < < 0,0,1>,< -1,2,1>,< 1,4,1>,< 2,3,1>,< 1,1,1>,< 1,2,1>,< 2.5,1,1>>

  • Rationalbspline nurb spline curve of assigned degree, knots and points
    Pre/Post conds (dom::and ~ [ispol,c:eq:< 1,1> ~ [dim,rn]])(degree::isnat)
    (knots::isseqof:isreal)(points::ismat) => (ispol)
    Example rationalbspline:(intervals:1:11):3:< 0,0,0,0,1,2,3,4,4,4,4>:
    < < 0,0,1>,< -1,2,1>,< 1,4,1>,< 2,3,1>,< 1,1,1>,< 1,2,1>,< 2.5,1,1>>

  • Splinesampling constant number of subintervals in the partition of unit interval
    Pre/Post conds => (isnum)
    Example intervals:1:splinesampling

  • Spline generator of uniform splines starting from a curve generator function
    Pre/Post conds (curve::isfun) => (isfun)
    Example spline:(cubicubspline:(intervals:1:splinesampling)):
    < < -3,6>,< -4,2>,< -3,-1>,< -1,1>,< 1.5,1.5>,< 3,4>>

PLaSM is Free Software and may be distributed under GNU LGPL