Построение сплайновых кривых в 2D и 3D

Этот пример показывает, как использовать команду 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, если бы вы хотели ввести список точек в интерактивном режиме.

3-D сплайновые кривые

Столь же легко создать сплайновые кривые в трех измерениях. На этот раз мы сделаем что-то менее случайное. Во-первых, мы генерируем точки.

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

Для просмотра документации необходимо авторизоваться на сайте