在 Matlab 中填充半圆

filled semicircle in Matlab

关于如何在 Matlab 中绘制关于特定点的实心圆,有什么好的技巧吗?我找到了正常圆的解决方案,但我不知道如何填充它。

我需要这个,因为我应该在它的每一半上有两种不同颜色的圆圈。这可能吗?

提前致谢

要绘制实心圆,请使用 rectangle,其中 'Curvature' 属性 等于 [1 1],并将 'Facecolor' 属性 设置为所需的填充颜色:

rectangle('Position',[10 10 20 20], 'Curvature',[ 1 1], 'Facecolor','b', 'Edgecolor','k');
axis equal

您可以定义一组多边形顶点并用 patchfill(整圈)绘制它们。

r = 1;
phi = 0:0.01:2*pi;
x = r*cos(phi);
y = r*sin(phi);
patch(x,y,'b');
axis equal;

这比 的解决方案多了一些代码。但如果您想要一组多边形并且希望对所有多边形都一视同仁,它可能会很有用。

编辑 此代码将给出 2 个单独着色的半圆。

r = 1;
phi = 0:0.01:pi;
x = r*cos(phi); x = [x,x(1)];
y = r*sin(phi); y = [y,y(1)];
patch(x,y,'b');
x2 = r*cos(pi+phi); x2 = [x2,x2(1)];
y2 = r*sin(pi+phi); y2 = [y2,y2(1)];
patch(x2,y2,'r');
axis equal;