【发布时间】:2015-05-26 05:57:45
【问题描述】:
是否有一些好的提示如何在 Matlab 中绘制关于特定点的实心圆?我找到了正常圆圈的解决方案,但我不知道如何填充它。
我需要这个,因为我应该在它的每一半上都有两种不同颜色的圆圈。这可能吗?
提前谢谢你
【问题讨论】:
标签: matlab plot geometry matlab-figure
是否有一些好的提示如何在 Matlab 中绘制关于特定点的实心圆?我找到了正常圆圈的解决方案,但我不知道如何填充它。
我需要这个,因为我应该在它的每一半上都有两种不同颜色的圆圈。这可能吗?
提前谢谢你
【问题讨论】:
标签: matlab plot geometry matlab-figure
您可以定义一组多边形顶点并使用patch 或fill(整圈)绘制它们。
r = 1;
phi = 0:0.01:2*pi;
x = r*cos(phi);
y = r*sin(phi);
patch(x,y,'b');
axis equal;
这比Luis Mendo 的解决方案要多一些代码。但如果您想拥有一组多边形并希望对所有多边形一视同仁,这可能会很有用。
编辑 此代码将给出 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;
【讨论】:
b改成了w,另一个b改成了k。我想知道像 x = [x,x(1)]; x2 = [x2,x2(1)]; 和类似的命令有什么需要。它没有做出任何改变,至少对我来说。我在这里说错了吗?
x = [x,x(1)];,原因已被时间流逝。代码所做的是将图形的最后一个点连接回第一个点。我不确定我为什么这样做。可能是在编写代码时 patch 方法导致了这个问题,但也可能是始终连接图形的一般意图。
要绘制一个实心圆,请使用'Curvature' 属性等于[1 1] 的rectangle,并将'Facecolor' 属性设置为所需的填充颜色:
rectangle('Position',[10 10 20 20], 'Curvature',[ 1 1], 'Facecolor','b', 'Edgecolor','k');
axis equal
【讨论】:
rectangle 用于画圆圈很有趣:-)