Generate random coordinates around a circle

1 回表示 (過去 30 日間)
John
John 2013 年 7 月 31 日
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 件のコメント
Richard Brown
Richard Brown 2013 年 7 月 31 日
Hint: polar coordinates
John
John 2013 年 7 月 31 日
Unfortunately, I rarely use Matlab, I have no clue how to do it even with the polar coordinates hint

サインインしてコメントする。

回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
編集済み: Azzi Abdelmalek 2013 年 8 月 1 日
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 件のコメント
Richard Brown
Richard Brown 2013 年 8 月 1 日
編集済み: Richard Brown 2013 年 8 月 1 日
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
John 2013 年 8 月 1 日
The link http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_set_of_random_locations_within_a_circle.3F provided by Richard Brown worked, Thanks you all for your help

サインインしてコメントする。


Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
編集済み: Azzi Abdelmalek 2013 年 7 月 31 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
Do you mean inside the circle?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
Richard, I think it's better to use randperm, with rand or randi there is a risk to have repetition

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLighting, Transparency, and Shading についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by