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

温馨提示:答案为网友推荐,仅供参考
相似回答