Matlab 在样条曲线上创建圆
我需要一些关于沿整个样条曲线以圆或六边形形式创建元素的信息,如下图所示。你能告诉我如何在我的代码中实现这一点吗 请查找以下有关样条曲线创建的代码Matlab 在样条曲线上创建圆,matlab,spline,Matlab,Spline,我需要一些关于沿整个样条曲线以圆或六边形形式创建元素的信息,如下图所示。你能告诉我如何在我的代码中实现这一点吗 请查找以下有关样条曲线创建的代码 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]数组)
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]数组),您可以复制您使用的部分
绘图
代码,但这次使用更大的标记和不同的颜色:
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
非常感谢你。。这是非常有用的,我可以绘制八角形以及类似于六边形,如果是的话,我应该使用哪些代码类似于六边形的“h”欢迎!恐怕我不知道如何轻易地画出一个八角形。您可以查看有关线标记以及如何修改线标记的Matlab文档。谢谢。我会检查的。