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

8749视图(过去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=圆圈2(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)

塞尔万·巴默尼
塞尔万·巴默尼 2016年2月17日
现在有一个名为viscircles()的函数:
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年12月25日
内圆(适用于分段、中心、半径、,“颜色”,“b”)

登录以发表评论。


苏波杰·乔查隆库
苏波杰·乔查隆库 2019年10月2日
图(x,y,'bo','MarkerSize',50);
1评论
瓦格纳亚杰
瓦格纳亚杰 2020年12月7日
如果要突出显示图中的某个部分,这是迄今为止最好的解决方案

登录以发表评论。


史蒂文·洛德
史蒂文·洛德 2020年12月25日
另一种可能是使用一个圆来近似圆 多形 有大量的侧面,并绘制 多形 .
p=nsidedpoly(1000,“中心”, [2 3],“半径”, 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)
其中席和彝是中心的坐标,R是半径。
2评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年5月9日
使用viscircles()或使用带有“o”标记和大“MarkerSize”的plot()会更短。

登录以发表评论。


德文·马尔切利
德文·马尔切利 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坐标,圆上有2个y坐标。
我们需要复制每个x坐标,这样我们就可以匹配每个x
%%它的一对y值。
%%选择的方法:当圆“环绕”时重复x坐标
%%例如:x=[0.1 0.2…结束…0.2 0.1 0]
N=长度(X);
x=[x翻转(x)];
N1=长度(X1);
x1 = [x1翻转(x1)];
%%ytemp1:沿圆从左向右扫掠时y值的向量
%%ytemp2:沿圆从右向左扫掠时y值的向量
%%我们先取正值还是负值是任意的
ytemp1=零(1,N);
ytemp2=零(1,N);
ytemp11=零(1,N1);
ytemp22 = 0(1、N1);
对于i=1:1:N
平方=sqrt(r^2-X(i)^2+2*X(i)*h-h^2);
ytemp1(i)=k-平方;
ytemp2(N+1-i)=k+平方;
终止
对于i=1:1:N1
square1=sqrt(r1^2-X1(i)^2+2*X1(i)*h1-h1^2);
ytemp11(i)=k1-平方1;
Ytemp22 (i) = k1 + square1;
终止
y=[ytemp1 ytemp2];
y1=[ytemp11 ytemp22];
%%绘制(x,y)点
图(1)
绘图(x,y)
持有在…上
绘图(x1,y1)
轴([-5-5]);

登录以发表评论。


易卜拉欣·苏杰里
易卜拉欣·苏杰里 2021年3月26日
最短的代码可能是:
作用绘图圆(r、x、y)
th=0:pi/100:2*pi;
f=r*exp(j*th)+x+j*y;
地块(真实(f)、图像(f));
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年3月27日
请注意,我使用了打印单个变量的快捷方式,而不是表达式的real()和imag()。这是plot的一个“特性”:如果你要求plot()一个变量,而该变量是复数,那么它使用实部作为x,虚部作为y。删除临时变量使代码更加紧凑,但对plot()的更改只会使单个表达式使用与您使用的算法不同的算法。
…你呢 说“最短的”,但我对你的方法的理解较短;-)

登录以发表评论。


帕特里夏·阿吉拉尔
帕特里夏·阿吉拉尔 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中查找宝藏,了解社区如何帮助您!

开始狩猎!