繁体   English   中英

如何在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向量定义了矩形,前两个值xy是矩形的左下角。 最后两个值定义矩形的宽度和高度。

pos = [ [x y] width height ]

圆的左下角- 是的,这个圆有角,虽然是假想的 - 是中心c = [3 3]减去半径r = 2 ,即[xy] = [1 1] 宽度高度等于圆的直径,所以width = 2*r; height = width; 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 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM