В этом примере показано, как использовать cscvn
команда из Curve Fitting Toolbox™ для построения кубических сплайн в двух и трёх размерностях.
В этом примере показано, как нарисовать сглаженную кривую через список точек в том порядке, в котором они происходят. Во-первых, мы выбираем некоторые случайные точки в плоскости и храним их в матрице, по одной точке на столбец.
npts = 10; xy = [randn(1,npts); randn(1,npts)]; plot(xy(1,:),xy(2,:),'ro','LineWidth',2); text(xy(1,:), xy(2,:),[repmat(' ',npts,1), num2str((1:npts)')]) ax = gca; ax.XTick = []; ax.YTick = [];
Затем создайте кривую с помощью cscvn
команда и график ее выполнения с помощью fnplt
.
hold on fnplt(cscvn(xy),'r',2) hold off
Можно также использовать getcurve
Команда, хотите ли вы ввести список точек в интерактивном режиме.
Так же легко создать сплайн в трёх размерностях. На этот раз мы сделаем что-то менее случайное. Во-первых, мы генерируем точки.
npts = 13; t = linspace(0,8*pi,npts); z = linspace(-1,1,npts); omz = sqrt(1-z.^2); xyz = [cos(t).*omz; sin(t).*omz; z]; plot3(xyz(1,:),xyz(2,:),xyz(3,:),'ro','LineWidth',2); text(xyz(1,:),xyz(2,:),xyz(3,:),[repmat(' ',npts,1), num2str((1:npts)')]) ax = gca; ax.XTick = []; ax.YTick = []; ax.ZTick = []; box on
Вот 3D сплайн кривая через эти точки, обеспечиваемая cscvn
. Добавляя первую точку в конец списка, мы получаем плавную замкнутую кривую.
hold on fnplt(cscvn(xyz(:,[1:end 1])),'r',2) hold off