Interpolation on sphere with curve fitting toolbox

15 views (last 30 days)
I'd like to know if it is possible to restirct the interpolation to the unit 3-sphere using curve fitting toolbox.
I have given points on that represent a not necessarily closed curve that i want to interpolate.
% generate points
n = 10;
a = linspace(0,2*pi,n);
r = 0.5;
v1 = sin(r).*cos(a);
v2 = sin(r).*sin(a);
v3 = zeros(1,length(a));
v4 = ones(1,length(a)).*cos(r);
% vectors / points on S^3
vec = [v1;v2;v3;v4];
% interpolation
curve_s = csapi(a,vec);
vecnorm(fnval(curve_s,[0:0.1:2*pi]))
The problem is that not all vectors that are reconstructed have .
Is there a way to restrict csapi that the reconstructed vectors have length 1 (are on the surface of the unit 3-sphere) ?
Thanks in advance

Accepted Answer

Matt J
Matt J on 30 Sep 2019
Edited: Matt J on 30 Sep 2019
You could pre-convert the input to spherical coordinates CART2SPH and then convert back after the interpolation.
  4 Comments
Drazen Sander
Drazen Sander on 30 Sep 2019
Thank you. I edited my question i hope now it is more clear whats the problem.
Matt J
Matt J on 1 Oct 2019
Similar to my original suggestion, you could convert your points to 4D spherical coordinates,
and simply do the spline fit on the components.

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!