## BSPL Toolbox

version 1.0.3 (55.8 KB) by
Bézier toolbox for advanced curve analysis and processing, optimised for accuracy and speed.

Updated 16 May 2022

BSPL
Bézier curve evaluation. https://uk.mathworks.com/matlabcentral/fileexchange/109179-high-precision-bezier-curves
x = rand(4, 2);
b = bspl(x);
b = bspl(x, 50);
b = bspl(x, rand(3, 1));
b = bspl(x, [], 1);
b = bspl(x, 1e3, 2, [1, 3, 3, 1]);
BSPLARC
Bézier curve arc-length calculation or estimation.
x = rand(4, 2);
a = bsplarc(x);
a = bsplarc(x, [0 0.5]);
a = bsplarc(x, [], 1);
a = bsplarc(x, 100, -1);
BPSLBOX
Bézier curve bounding box or tight bounding box.
x = rand(4, 3);
y = bsplbox(x);
y = bsplbox(x, 1);
y = bsplbox(x, [], 0);
BSPLC1D
Bézier curve discrete 1D curvature and normals.
x = bspl(rand(4, 3));
[k, n] = bsplc1d(x);
k = bsplc1d(x, []);
BSPLCRV
Bézier analytic signed curvature.
x = rand(4, 2);
k = bsplcrv(x);
k = bsplcrv(x, 100);
BSPLCSP
Bézier calculation of cusps and inflections (convexity).
x = rand(4, 2);
[y, t, z] = bsplcsp(x);
y = bsplcsp(x, []);
y = bsplcsp(x, 1);
BSPLCUT
Bézier curve subdivision.
x = rand(4, 2);
y = bsplcut(x);
y = bsplcut(x, rand(2, 1));
y = bsplcut(x, 3);
BSPLDCJ
Bézier curve evaluation using De-Casteljau.
x = rand(4, 2);
b = bspldcj(x);
b = bspldcj(x, 20);
b = bspldcj(x, rand(50, 1));
BSPLDER
Bézier curve derivatives or hodograph.
x = rand(5, 2);
y = bsplder(x, 3);
BSPLDIS
Bézier curve with uniform sampling.
x = rand(4, 3);
y = bspldis(x);
[y, t] = bspldis(x, 5);
BSPLFIT
Bézier curve fitting.
x = rand(5, 2);
[y, res, t] = bsplfit(x);
y = bsplfit(x, 3);
y = bsplfit(x, [], 0);
y = bsplfit(x, 3, 1);
y = bsplfit(x, [], 1e2);
BSPLFUN
Bézier curve algebraic operations.
x = rand(5, 3);
y = rand(4, 3);
z = bsplfun(x, y, 'plus');
z = bsplfun(x, x, -y, '*');
z = bsplfun(x, y, 'cross');
BSPLGET
Bézier curve control point finder.
x = rand(4, 2);
y = bsplget(x);
y = bsplget(x, 0);
y = bsplget(x, 1);
y = bsplget(x, 1e4);
BSPLINT
Bézier curve intersections or self-intersections.
x = rand(5, 2);
y = rand(4, 2);
[t, y] = bsplint(x, y);
t = bsplint(x);
t = bsplint(x, 0.5);
BSPLKIN
Bézier curve knot insertion.
x = rand(5, 2);
y = bsplkin(x, 3);
BSPLPCW
Bézier curve piecewise or composite construction (open or closed).
x = rand(4, 2);
y = bsplpcw(x);
y = bsplpcw(x, []);
BSPLPRO
Bézier curve point projection.
x = rand(4, 2);
y = rand(2, 2);
z = bsplpro(x, y);
BSPLVEC
Bézier curve tangent and normals.
x = rand(4, 2);
[t, n] = bsplvec(x);
t = bsplvec(x, 100);
t = bsplvec(x, rand(4, 1));
t = bsplvec(x, [], 1);
BER2BEZ
Polynomial to Bézier coefficients.
x = rand(4, 2);
y = ber2bez(x);
BEZ2BER
Bézier to polynomial coefficients.
x = rand(4, 2);
y = bez2ber(x);

### Cite As

Moreno, M. (2022). BSPL Toolbox (https://www.mathworks.com/matlabcentral/fileexchange/111410-bspl-toolbox), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2022a
Compatible with any release
##### Platform Compatibility
Windows macOS Linux

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!