如何在 Matlab 中绘制圆?
How to plot a circle in Matlab?
我想知道如何在知道圆心和半径的情况下在 Matlab 中绘制圆?我试过 circles()
这似乎不起作用,因为我的 Matlab 版本没有它。我知道我可以使用 Rectangle 函数来这样做,但这是一种相当复杂的方法,因为我每次都需要计算出最左边的点。
有没有更简单的方法让我只知道圆心和半径来画圆?
别笑,但最简单的方法是使用 rectangle
函数,确实 ;)
%// radius
r = 2;
%// center
c = [3 3];
pos = [c-r 2*r 2*r];
rectangle('Position',pos,'Curvature',[1 1])
axis equal
但是将矩形的曲率设置为1!
position
向量定义矩形,前两个值x
和y
是矩形的左下角。最后两个值定义矩形的宽度和高度。
pos = [ [x y] width height ]
你的圆的左下 角 - 是的,这个圆有角,虽然是虚构的 - 是 中心 c = [3 3]
减去半径 r = 2
即 [x y] = [1 1]
。 宽度和高度等于圆的直径,所以width = 2*r; height = width;
如果您不喜欢上述解决方案的平滑性,则没有办法使用 三角函数 绘制实际圆的明显方法。
%// number of points
n = 1000;
%// running variable
t = linspace(0,2*pi,n);
x = c(1) + r*sin(t);
y = c(2) + r*cos(t);
%// draw line
line(x,y)
%// or draw polygon if you want to fill it with color
%// fill(x,y,[1,1,1])
axis equal
如果你想要的圈子不是 you can use annotation
center = [3, 4];
r = 2;
pos = [center-r, 2*r 2*r];
annotation('ellipse', pos );
我想知道如何在知道圆心和半径的情况下在 Matlab 中绘制圆?我试过 circles()
这似乎不起作用,因为我的 Matlab 版本没有它。我知道我可以使用 Rectangle 函数来这样做,但这是一种相当复杂的方法,因为我每次都需要计算出最左边的点。
有没有更简单的方法让我只知道圆心和半径来画圆?
别笑,但最简单的方法是使用 rectangle
函数,确实 ;)
%// radius
r = 2;
%// center
c = [3 3];
pos = [c-r 2*r 2*r];
rectangle('Position',pos,'Curvature',[1 1])
axis equal
但是将矩形的曲率设置为1!
position
向量定义矩形,前两个值x
和y
是矩形的左下角。最后两个值定义矩形的宽度和高度。
pos = [ [x y] width height ]
你的圆的左下 角 - 是的,这个圆有角,虽然是虚构的 - 是 中心 c = [3 3]
减去半径 r = 2
即 [x y] = [1 1]
。 宽度和高度等于圆的直径,所以width = 2*r; height = width;
如果您不喜欢上述解决方案的平滑性,则没有办法使用 三角函数 绘制实际圆的明显方法。
%// number of points
n = 1000;
%// running variable
t = linspace(0,2*pi,n);
x = c(1) + r*sin(t);
y = c(2) + r*cos(t);
%// draw line
line(x,y)
%// or draw polygon if you want to fill it with color
%// fill(x,y,[1,1,1])
axis equal
如果你想要的圈子不是annotation
center = [3, 4];
r = 2;
pos = [center-r, 2*r 2*r];
annotation('ellipse', pos );