Matlab - ayuda para graficar al azar un número determinado de círculos

 
Vista:
sin imagen de perfil

ayuda para graficar al azar un número determinado de círculos

Publicado por Cristian (4 intervenciones) el 23/07/2015 17:32:04
¡Hola a todos!!!
Necesito ayuda para un proyecto que estoy realizando. Consiste en lo siguiente:
Tengo que graficar al azar un número determinado de círculos (de igual diámetro), secuencialmente dentro de un cuadrado. La condición que se debe cumplir es que el nuevo circulo es aceptado si la distancia entre él y los demás círculos ya graficados sea igual a un valor determinado.
Espero me puedan ayudar. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

ayuda para graficar al azar un número determinado de círculos

Publicado por Daniel (264 intervenciones) el 24/07/2015 19:09:38
Acá te dejo un código que hace lo que decis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
clc
clear all
lado=5; % medida del lado del cuadrado
ncir=200; % numero de circulo deseado
radio=0.18; % radio de cada circulo
infam=1000;% maximo de intentos fallidos
% variables de condicion
 
infa=0;j=1;salir=0;k=1;r=radio/lado;
 
while salir<ncir && infa<infam;
    centro(j,:)=rand(2,1);
    sq=[centro(j,1)-r centro(j,1)+r centro(j,2)-r centro(j,2)+r];
 
    if j>1
        d=(centro(j,1)-centro(1:(j-1),1)).^2+(centro(j,2)-centro(1:(j-1),2)).^2;
        if d>(2*r)^2
            k=1;
        else
            k=2;
            infa=infa+1;
        end
    end
 
 
    if (max(sq)<1)&&(min(sq)>0)&&(k==1)
 
        plot(lado*centro(j,1),lado*centro(j,2),'.k'),hold on
        viscircles(lado*centro(j,:), lado*r,'EdgeColor','b');
        xlim([0 lado])
        ylim([0 lado])
        axis square
        salir=salir+1;
        j=j+1;
        infa=0;
    end
end
title(['se hallaron ' num2str(salir) ' círculos'])


Comentanos como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

ayuda para graficar al azar un número determinado de círculos

Publicado por Cristian (4 intervenciones) el 30/07/2015 23:07:38
Me sirvió de mucho Daniel.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar