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>>