Mercurial > repos > public > sbplib
changeset 1092:47a72344db71 feature/dataspline
Bugfix in dataSpline(), reparameterize with parameter from 0 to 1 before using Curve.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Fri, 05 Apr 2019 13:14:29 -0700 |
parents | b4054942e277 |
children | fdff002ebb32 |
files | +parametrization/dataSpline.m |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/+parametrization/dataSpline.m Fri Apr 05 10:17:04 2019 +0200 +++ b/+parametrization/dataSpline.m Fri Apr 05 13:14:29 2019 -0700 @@ -13,14 +13,18 @@ pp_g = spapi(4, t_data, f_data); % equivalent to g = spapi(aptknt(t_data, 4), t_data, f_data) % or (not sure what the difference is?!) - % g = spapi(optknt(t_data, 4), t_data, f_data) - pp_gp = fnder(g); + % pp_g = spapi(optknt(t_data, 4), t_data, f_data) + pp_gp = fnder(pp_g); - g = @(t)fnval(pp_g, t); - pp_gp = @(t)fnval(pp_gp, t); + % Reparametrize with parameter s from 0 to 1 to use Curve class + tmin = min(t_data); + tmax = max(t_data); + t = @(s) tmin + s*(tmax-tmin); + dt_ds = @(s) 0*s + (tmax-tmin); + g = @(s) [t(s); fnval(pp_g, t(s))]; + gp = @(s) [dt_ds(s); fnval(pp_gp, t(s)).*dt_ds(s)]; + % Create Curve object and reparametrize with arclength parametrization C = parametrization.Curve(g, gp); - - % Reparametrize with arclength parametrization C = C.arcLengthParametrization(m_data); end