Generate random coordinates around a circle
Show older comments
How can I generate 15 random 2-D coordinates around a circle of radius R with the center of the circle being a defined [x y] 2-D coordinate? Thanks
4 Comments
Cedric
on 31 Jul 2013
What have you tried so far?
John
on 31 Jul 2013
Richard Brown
on 31 Jul 2013
Hint: polar coordinates
John
on 31 Jul 2013
Answers (2)
Azzi Abdelmalek
on 31 Jul 2013
Edited: Azzi Abdelmalek
on 1 Aug 2013
x0=10; % x0 an y0 center coordinates
y0=20;
radius=10; % radius
angle=-pi:0.1:pi;
angl=angle(randperm(numel(angle),15));
r=rand(1,15)*radius;
x=r.*cos(angl)+x0;
y=r.*sin(angl)+y0;
xc=radius.*cos(angle)+x0;
yc=radius.*sin(angle)+y0;
scatter(xc,yc,'.r')
hold on
scatter(x,y)
xlim([-radius radius]+x0)
ylim([-radius radius]+y0)
axis square
hold off
2 Comments
Richard Brown
on 1 Aug 2013
Edited: Richard Brown
on 1 Aug 2013
Again, you're choosing from an artificially finite set (63) of evenly spaced angles there. Also, this method will cluster points near the centre of the circle.
John
on 1 Aug 2013
Azzi Abdelmalek
on 31 Jul 2013
Edited: Azzi Abdelmalek
on 31 Jul 2013
x0=10; % x0 and y0 are center coordinates
y0=20;
r=1; % radius
angle=-pi:0.1:pi;
angl=angle(randi(numel(angle),15,1))
x=r*cos(angl)+x0
y=r*sin(angl)+y0
scatter(x,y)
xlim([-r r]+x0)
ylim([-r r]+y0)
axis square
5 Comments
Richard Brown
on 31 Jul 2013
I presume you mean
angl = 2*pi*rand(1, 15)
John
on 31 Jul 2013
Richard Brown
on 31 Jul 2013
Edited: Richard Brown
on 31 Jul 2013
I seem to recall Roger Stafford answering this very question maybe yesterday? Could be worth trawling through recent questions to have a look. edit Actually, it was a while ago, but it got updated yesterday:
Azzi Abdelmalek
on 31 Jul 2013
Do you mean inside the circle?
Azzi Abdelmalek
on 31 Jul 2013
Richard, I think it's better to use randperm, with rand or randi there is a risk to have repetition
Categories
Find more on Random Number Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!