В этом примере показано, как использовать cscvn команда из 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
