如何绘制具有给定半径和圆心的圆?

8506次浏览(过去30天)
我想画一个给定半径和圆心的圆。

接受的答案

MathWorks支金宝app持团队
下面是一个MATLAB函数,该函数绘制半径为“r”的圆,并将圆心定位在坐标“x”和“y”处:
函数h =圆(x, y, r)
持有
th = 0:π/ 50:2 *π;
Xunit = r * cos(th) + x;
Yunit = r * sin(th) + y;
H = plot(xunit, yunit);
持有
另一种方法是使用“矩形”函数:
函数h = circle2 (x, y, r)
d=r*2;
px=x-r;
py = y r;
h=矩形(“位置”,[px py d d],“弯曲”,[1,1]);
daspect ((1 1 1))
如果你使用的是R2012a或更高版本,并且有图像处理工具箱,那么你可以使用'viscircles'函数来画圆:
内圆(中心、半径)
15个评论

登录评论。

更多的答案(7)

serwan Bamerni
serwan Bamerni 2016年2月17日
现在有一个名为viscircles()的函数:
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年12月25日
viscircles(应用程序。分段,中心、半径、“颜色”,“b”)

登录评论。


Supoj Choachaicharoenkul
Supoj Choachaicharoenkul 2019年10月2日
plot(x, y, 'bo', ' marksize ', 50);
1评论
瓦格纳亚杰
瓦格纳亚杰 2020年12月7日
如果您想突出显示图中的某些部分,这是目前为止最好的解决方案

登录评论。


史蒂文·洛德
史蒂文·洛德 2020年12月25日
另一种可能是用a来近似圆 polyshape 有很多边,然后画出来 polyshape .
p = nsidedpoly (1000“中心”3 [2],“半径”, 5);
图(p,“脸色”,“r”)
平等的
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年6月9日
请记住,等边三角形的范围为60度。

登录评论。


布阿比德胺
布阿比德胺 2018年7月23日
编辑:布阿比德胺 2018年7月23日
你好
你可以简单地这样写:
信谊x;信谊Y
ezplot ((x-xi)。^ 2 + (y-yi)。^ 2 r ^ 2)。
xi和yi是圆心的坐标r是半径
2评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年5月9日
使用viscircles()或使用带有'o'标记和大'MarkerSize'的plot()更短。

登录评论。


Devin Marcheselli
Devin Marcheselli 2020年1月17日
我怎样用方程(x-h) ^2+(y-k)画一个圆。^ 2 = r ^ 2
3评论
马克Rzewnicki
马克Rzewnicki 2020年3月17日
很遗憾,我刚刚才看到,抱歉。
最简单的方法是两次编写原始代码(第二次重命名变量),并使用“hold on”语句绘制两个圆圈。
这使得代码看起来非常难看——当像这样扩展代码时,您确实应该对内容进行矢量化并定义函数——但它会在必要时完成任务。结果是这样的(对我的原始代码进行5分钟的编辑):
(x-h)^2 + (y-k)^2 = r^2
中心:(h,k)半径:r
h = 1;
k = 1;
r = 1;
h1=2;
k1 = 2;
r1 = 2;
%%在x坐标系中,圆在h-r处“开始”,在h+r处“结束”
%% x_res =点之间的分辨率间距
Xmin = h - r;
Xmax = h + r;
x_res=1e-3;
X = xmin: x_res: xmax;
Xmin1 = h1 - r1;
Xmax1 = h1 + r1;
X1 = xmin1: x_res: xmax1;
对于大多数的x坐标,圆上有两个y坐标。
我们需要复制每个x坐标,这样我们就可以匹配每个x
%%它的一对y值。
%%选择的方法:当圆“环绕”时重复x坐标
例如:x =[0 0.1 0.2…]结束结束……0.2 - 0.1 0]
N=长度(X);
x=[x翻转(x)];
N1=长度(X1);
x1 = [x1翻转(x1)];
%%ytemp1:沿圆从左向右扫掠时y值的向量
%% ytemp2:当我们沿着圆从右到左扫视时y值的向量
我们先取正数还是负数是任意的
ytemp1 = 0 (1, N);
ytemp2=零(1,N);
ytemp11 = 0(1、N1);
ytemp22 = 0(1、N1);
对于我= 1:1:N
√(r^2 - X(i)^2 + 2*X(i)*h - h^2)
Ytemp1 (i) = k -平方;
ytemp2(N+1-i)=k+平方;
终止
对于i=1:1:N1
sqare1 =√(r1^2-X1(i)^2 + 2*X1(i)*h1 - h1^2);
Ytemp11 (i) = k1 - square1;
Ytemp22 (i) = k1 + square1;
终止
Y = [ytemp1 ytemp2];
Y1 = [ytemp11 ytemp22];
%%绘制(x,y)点
图(1)
绘图(x,y)
持有
情节(x1, y1)
轴([-5-5]);

登录评论。


Ebrahim Soujeri
Ebrahim Soujeri 2021年3月26日
最短的代码是这样的:
函数plotcircle (r, x, y)
th = 0:π/ 100:2 *π;
F = r * exp(j*th) + x+j*y;
地块(真实(f)、图像(f));
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年3月27日
但是请注意,我使用了绘制单个变量的快捷方式,而不是表达式的real()和imagg()。这是一个阴谋的“特性”:如果你问情节()单一变量和变量是复杂的价值,然后使用真正的组件作为x和虚构的组件y。删除临时变量使代码更加紧凑,但改变情节()只有一个表达式是使用不同的算法比你使用。
..和你 说“最短的”,但我对你的方法的理解较短;-)

登录评论。


帕特里夏·阿吉拉尔
帕特里夏·阿吉拉尔 2021年5月4日
物体在半径为1的圆上运动。绘制这个圆并放置一个角度为67º的点。帮助我
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年5月4日
67度,注意这里
Xunit = r * cos(th) + x;
Yunit = r * sin(th) + y;
如果角度是角度,可以使用cosd()和sind()。

登录评论。

下载188bet金宝搏

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!