NRBBASISFUNDER: NURBS basis functions derivatives
Calling Sequence:
Bu = nrbbasisfunder (u, crv)
[Bu, N] = nrbbasisfunder (u, crv)
[Bu, Bv] = nrbbasisfunder ({u, v}, srf)
[Bu, Bv, N] = nrbbasisfunder ({u, v}, srf)
[Bu, Bv, N] = nrbbasisfunder (pts, srf)
[Bu, Bv, Bw, N] = nrbbasisfunder ({u, v, w}, vol)
[Bu, Bv, Bw, N] = nrbbasisfunder (pts, vol)
INPUT:
u - parametric coordinates along u direction
v - parametric coordinates along v direction
w - parametric coordinates along w direction
pts - array of scattered points in parametric domain, array size: (ndim,num_points)
crv - NURBS curve
srf - NURBS surface
vol - NURBS volume
If the parametric coordinates are given in a cell-array, the values
are computed in a tensor product set of points
OUTPUT:
Bu - Basis functions derivatives WRT direction u
size(Bu)=[npts, prod(nrb.order)]
Bv - Basis functions derivatives WRT direction v
size(Bv) == size(Bu)
Bw - Basis functions derivatives WRT direction w
size(Bw) == size(Bu)
N - Indices of the basis functions that are nonvanishing at each
point. size(N) == size(Bu)
Copyright (C) 2009 Carlo de Falco
Copyright (C) 2016 Rafael Vazquez
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The following code
U = [0 0 0 0 1 1 1 1];
x = [0 1/3 2/3 1] ;
y = [0 0 0 0];
w = [1 1 1 1];
nrb = nrbmak ([x;y;y;w], U);
u = linspace(0, 1, 30);
[Bu, id] = nrbbasisfunder (u, nrb);
plot(u, Bu)
title('Derivatives of the cubic Bernstein polynomials')
hold off
Produces the following figure
| Figure 1 |
|---|
![]() |
Package: nurbs