作业帮 > 综合 > 作业

matlab中 如何在区域中产生N个随机点,并以这N个随机点为圆心,r为半径绘制N个圆?新手,只求程序,

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/16 14:44:47
matlab中 如何在区域中产生N个随机点,并以这N个随机点为圆心,r为半径绘制N个圆?新手,只求程序,
matlab中 如何在区域中产生N个随机点,并以这N个随机点为圆心,r为半径绘制N个圆?新手,只求程序,
clear;
clf;
N=input('请输入圆的个数:');
M=input('请输入产生圆心的区域(例如 [2,6]) :');
r=input('请输入圆的半径(例如输入 3) :')
m=M(1);
n=M(2);
x=(n-m)*rand(1,N)+m;
y=(n-m)*rand(1,N)+m;
A0=[];
for i=1:N
sita=0:pi/20:2*pi;%角度[0,2*pi]
plot(x(i)+r*cos(sita),y(i)+r*sin(sita));
hold on
A=[x(i),y(i)];
B=[A0;A];
A0=B;
end
grid on
axis equal
title('随机圆')
xlabel('横坐标x')
ylabel('纵坐标y')
disp('圆心坐标为:')
B
---------试运行结果--------------
请输入圆的个数:4
请输入产生圆心的区域(例如 [2,6]) :[-5,5]
请输入圆的半径(例如输入 3) :3
r =
3
圆心坐标为:
B =
3.8651 4.7868
-4.7133 2.1269
-0.1010 0.0047
-3.3207 -0.2891
再问: 怎么显示出圆心呢,要求圆心和圆同时显示... 谢谢
再答: clear; clf; N=input('请输入圆的个数:'); M=input('请输入产生圆心的区域(例如 [2,6]) :'); r=input('请输入圆的半径(例如输入 3) :') m=M(1); n=M(2); x=(n-m)*rand(1,N)+m; y=(n-m)*rand(1,N)+m; A0=[]; for i=1:N sita=0:pi/20:2*pi;%角度[0,2*pi] plot(x(i)+r*cos(sita),y(i)+r*sin(sita)); hold on plot(x(i),y(i),'.'); hold on A=[x(i),y(i)]; B=[A0;A]; A0=B; end grid on axis equal title('随机圆') xlabel('横坐标x') ylabel('纵坐标y') disp('圆心坐标为:') B 请输入圆的个数:5 请输入产生圆心的区域(例如 [2,6]) :[-6,6] 请输入圆的半径(例如输入 3) :3 r = 3 圆心坐标为: B = -0.9871 0.4695 5.7966 2.3773 -2.3825 1.9983 2.4132 -3.8624 1.9961 -4.4638