如何画一个半径和圆心给定的圆?
8012次观看(过去30天)
显示旧的注释
接受的答案
MathWorks支金宝app援小组
2022年3月23日
编辑:MathWorks支金宝app援小组
2022年3月23日
下面是一个MATLAB函数,它绘制一个半径为'r'的圆,并将圆心定位在坐标'x'和'y':
函数H =圆(x,y,r)
持有在
Th = 0:pi/50:2*pi;
Xunit = r * cos(th) + x;
Yunit = r * sin(th) + y;
H = plot(xunit, yunit);
持有从
另一种方法是使用'rectangle'函数:
函数H =圆2(x,y,r)
D = r*2;
Px = x-r;
Py = y-r;
H =矩形(“位置”,[px py d d],“弯曲”[1]);
daspect ((1 1 1))
如果你使用的是R2012a或更高版本,并且有图像处理工具箱,那么你可以使用'viscircles'函数来画圆:
viscircles(中心、半径)
更多答案(9)
Ebrahim Soujeri
2021年3月26日
它的最短代码可能是:
函数plotcircle (r, x, y)
Th = 0:pi/100:2*pi;
F = r * exp(j*th) + x+j*y;
情节(真正的(f),图像放大(f));
Devin Marcheselli
2020年1月17日
如何用方程(x-h)²+(y-k)来画圆。^2 = r ^2
3评论
马克Rzewnicki
2020年3月17日
很遗憾,我刚看到这个,抱歉。
要做到这一点,最简单的方法是编写两次原始代码(第二次重命名变量),并使用“hold on”语句绘制两个圆。
这使得代码看起来非常丑陋——当像这样扩展代码时,你真的应该向量化东西并定义函数——但它可以在紧要关头完成工作。结果如下所示(对原始代码进行了5分钟的编辑):
%圆方程:(x-h)²+ (y-k)²= r²
%中心:(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 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 = 0 (1,N);
ytemp11 = 0 (1,N1);
ytemp22 = 0 (1,N1);
为i = 1:1:N
平方=根号(r²- X(i)²+ 2*X(i)*h - h²);
Ytemp1 (i) = k -平方;
ytemp2(N+1-i) = k +平方;
结束
为i = 1:1:N1
square1 =√(r1²-X1(i)²+ 2*X1(i)*h1 - h1²);
Ytemp11 (i) = k1 - square1;
Ytemp22 (i) = k1 + square1;
结束
Y = [ytemp1 ytemp2];
Y1 = [ytemp11 ytemp22];
绘制(x,y)点
图(1)
情节(x, y)
持有在
情节(x1, y1)
轴([-5 5 -5 5]);
山姆Zebrado
2022年6月12日
编辑:山姆Zebrado
2022年6月12日
如果你需要在不相等的轴上绘制圆,但不要让它们看起来像椭圆,你可以使用这样的单行函数:
%%使用不同半径绘制的函数
Fc_circle_plot = @(xs,ys,rs,varargin). ..
arrayfun (@ (x, y, r)情节(x, y,“o”,“MarkerSize”r变长度输入宗量{:}),x, y, rs,“UniformOutput”、假);
%%一个演示
X = 1:5;
Y = rand(1,5);
半径= randi([10,20],1,5);%从10到20的随机整数,大小为[1,5]
图;
持有在;
fc_circle_plot (x, y,半径,. ..
“颜色”,“b”,“线宽”,2. ..plot()支持的任何参数都可金宝app以放在这里
);
持有从;
附注:也可以将函数图替换为其他用途的函数。