# spcrv

Spline curve by uniform subdivision

## Syntax

`spcrv(c,k) spcrv(c) spcrv(c,k,maxpnt) `

## Description

`spcrv(c,k) ` ` `provides a dense sequence f(tt) of points on the uniform B-spline curve f of order `k` with B-spline coefficients `c`. Explicitly, this is the curve

with B(·|a,...,z) the B-spline with knots a,...,z, and `n` the number of coefficients in `c`, i.e., `[d,n]` equals `size(c)`.

`spcrv(c) ` chooses the order `k` to be 4.

`spcrv(c,k,maxpnt) ` makes sure that at least `maxpnt` points are generated. The default value for the maximum number of sites `tt` to be generated is `100`.

The parameter interval that the site sequence `tt` fills out uniformly is the interval [`k`/2 .. (`n-k`/2)].

The output consists of the array f(tt).

## Examples

The following would show a questionable broken line and its smoothed version:

```points = [0 0 1 1 0 -1 -1 0 0 ; 0 0 0 1 2 1 0 -1 -2]; plot(points(1,:),points(2,:),':') values = spcrv(points,3); hold on, plot(values(1,:),values(2,:)), hold off ```

expand all

### Algorithms

Repeated midpoint knot insertion is used until there are at least `maxpnt` sites. There are situations where use of `fnplt` would be more efficient.