在样条曲线上创建圆

create circles on a spline

我需要一些关于沿整个样条以圆形或六边形形式创建元素的信息,如下图所示,在 Matlab 中。你能告诉我如何在我的代码中实现它吗?

请找到以下关于样条创建的代码

x = -4:4;
y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0];
cs = spline(x,[0 y 0]);
xx = linspace(-4,4,101);
plot(x,y,'o',xx,ppval(cs,xx),'-');

如果需要任何其他信息,请告诉我

既然您已经知道要绘制圆的位置([x,y] 数组),您可以复制您使用的部分 plot 代码,但这次使用更大的标记和不同的颜色:

hold on
plot(x,y,'o',xx,ppval(cs,xx),'-');
plot(x,y,'o','MarkerSize',80,'Color','g');

看起来像这样:

您也可以使用 'hexagram' 标记(即使用 h 而不是 o)来获得六边形:

或者如果您希望每个圆看起来不同或单独控制它们的属性,您还可以绘制一个曲率 [1 1]:

的矩形
radius = .5; 

for k = 1:numel(x)
centerX = x(k);
centerY = y(k);
rectangle('Position',[centerX - radius, centerY - radius, radius*2, radius*2],...
    'Curvature',[1 1],...
    'EdgeColor','g','FaceColor','none');
end