BSPL Toolbox

バージョン 1.0.3 (55.8 KB) 作成者: Moreno, M.
Bézier toolbox for advanced curve analysis and processing, optimised for accuracy and speed.
ダウンロード: 100
更新 2022/5/16

ライセンスの表示

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

引用

Moreno, M. (2024). BSPL Toolbox (https://www.mathworks.com/matlabcentral/fileexchange/111410-bspl-toolbox), MATLAB Central File Exchange. に取得済み.

MATLAB リリースの互換性
作成: R2022a
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
タグ タグを追加

Community Treasure Hunt

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

Start Hunting!
バージョン 公開済み リリース ノート
1.0.3

Faster bsplcsp for inflections through det(cross(d2(x), d1(x))) = 0 if non-empty second argument. Optimised bsplpcw calculation routines. Replaced bspl for its original file (see attached link). Corrected description typo in binomial [1, 3, 3, 1].

1.0.2

Image change (mathworks bug: image has to be updated separately?)

1.0.1

Slight changes in BSPLPRO, BSPLARC and BSPLDIS. Added DEMOIMG with the executable file for the cover image.

1.0.0