Generate random coordinates around a circle
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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 comentarios
Respuestas (2)
  Azzi Abdelmalek
      
      
 el 31 de Jul. de 2013
        
      Editada: Azzi Abdelmalek
      
      
 el 1 de Ag. de 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 comentarios
  Richard Brown
      
 el 1 de Ag. de 2013
				
      Editada: Richard Brown
      
 el 1 de Ag. de 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.
  Azzi Abdelmalek
      
      
 el 31 de Jul. de 2013
        
      Editada: Azzi Abdelmalek
      
      
 el 31 de Jul. de 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 comentarios
  Azzi Abdelmalek
      
      
 el 31 de Jul. de 2013
				Richard, I think it's better to use randperm, with rand or randi there is a risk to have repetition
Ver también
Categorías
				Más información sobre Random Number Generation en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!