3d interpolation using points?
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jamal
am 22 Apr. 2016
Kommentiert: Manas Biswal
am 10 Aug. 2021
I have these points: p1=(30 0 0.2035) , p2=(0 0 0.0357) , p3= (30 60 0.4717), p4=(30 0 0.1038), p5=(30 30 0.4606) I'd like to interpolate between them and plot the interpolation. How? Thanks
0 Kommentare
Akzeptierte Antwort
KSSV
am 22 Apr. 2016
3D Interpolation using parametric cubic spline.
clc; clear all ;
% Inteprolation using Parametric cubic spline
% Given points
P = [30 0 0.2035 ;
0 0 0.0357 ;
30 60 0.4717 ;
30 0 0.1038 ;
30 30 0.4606] ;
x = P(:,1) ; y = P(:,2) ; z = P(:,3) ;
% Get the arc lengths of the curve
n = length(x) ;
L = zeros(n,1) ;
for i=2:n
arc_length = sqrt((x(i)-x(i-1))^2+(y(i)-y(i-1))^2+(z(i)-z(i-1))^2);
L(i) = L(i-1) + arc_length;
end
% Normalize the arc lengths
L=L./L(n);
% do the spline
x_t = spline(L,x) ;
y_t = spline(L,y) ;
z_t = spline(L,z) ;
% for interpolation
tt = linspace(0,1,500) ;
xi = ppval(x_t,tt) ;
yi = ppval(y_t,tt) ;
zi = ppval(z_t,tt) ;
plot3(x,y,z,'.-r') ;
hold on
plot3(xi,yi,zi,'.b') ;
legend('Given points' , 'interpolated') ;
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interpolation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!