# # Look at the effect of B-spline approximation on a prefix of the # input data as more points are added. # read bspline: x := 0,1,2,3,4,5,6,7: y := 0,2,4,1,0,-1,1,0: p3 := BsplineApprox(3,[y],[x],t): plot3 := plot({p3}, 0..7, colour=GREEN): plot4 := plot([pairs([x],[y])],style=point, colour=WHITE): with(plots): display({plot3,plot4},title=`Uniform B-Spline Approximation to Points`); x := 0,1,2,3,3.5,5,6,7: p3 := BsplineApprox(3,[y],[x],t): plot3a := plot({p3}, 0..7, colour=YELLOW): plot4a := plot([pairs([x],[y])],style=point, colour=WHITE): x := 0,1,2,3,3.25,5,6,7: p3 := BsplineApprox(3,[y],[x],t): plot3b := plot({p3}, 0..7, colour=CYAN): plot4b := plot([pairs([x],[y])],style=point, colour=WHITE): x := 0,1,2,3,3,5,6,7: p3 := BsplineApprox(3,[y],[x],t): plot3c := plot({p3}, 0..7, colour=RED): plot4c := plot([pairs([x],[y])],style=point, colour=WHITE): display({plot4,plot4a,plot4b,plot4c,plot3,plot3a,plot3b,plot3c},title=`Adjusting the spacing of an interior knot`); x := 0,1,2,3,3,3,6,7: p3 := BsplineApprox(3,[y],[x],t): plot3d := plot({p3}, 0..7, colour=YELLOW): plot4d := plot([pairs([x],[y])],style=point, colour=WHITE): display({plot4,plot4d,plot3,plot3d},title=`A triple knot at 3`); x := 0,1,2,3,3,3,3,7: p3 := BsplineApprox(3,[y],[x],t): plot3e := plot({p3}, 0..7, colour=YELLOW): plot4e := plot([pairs([x],[y])],style=point, colour=WHITE): display({plot4,plot4e,plot3,plot3e},title=`A quadruple knot at 3`);