Matlab - repetir graficas

   
Vista:

repetir graficas

Publicado por alx al_126@hotmail.com (15 intervenciones) el 02/04/2013 23:52:24
hola, me pueden ayudar por favor tengo que repetir una grafica varias veces para que se forme un cubo. Use ciclos FOR el problema es que que al momento de correrlo solo me aumenta una fila en cada eje(x,y,z)
aqui mi codigo esperando que me digan mi error
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
clear
clc
a=[0 %coordenadas en x
   1
   0
   0
   1
   1
   0
   1
   1
   .5
   .5
   0
   .5
   .5 ]
b=[0
   0    %coordenadas en y
   1
   0
   0
   1
   1
   1
   .5
   .5
   1
   .5
   .5
   0]
c=[0
   0
   0
   1
   1
   0
   1
   1
   .5   %coordenadas en z
   0
   .5
   .5
   1
   .5]
n=3
k=[1
   1
   1
   1
   1
   1
   1    %aumento 1 en cada punto
   1
   1
   1
   1
   1
   1
   1]
for k=1:n
    plot3(a+k,b,c,'o') %aumento en el eje de las x
    for k=1:n
        hold on
        plot3(a,b+k,c,'o')  %aumento en el eje de las y
        for k=1:n
            hold on
            plot3(a,b,c+k,'o')  %aumento en el eje de las z
        end
    end
end
 
axis on
 
rotate3d on
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 JOSE JEREMIAS CABALLERO

repetir graficas

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 03/04/2013 01:06:43
Lo que tu quieres hacer me parece, es que cada cara del cubo esté formada por bolitas azules( es decir lleno de bolitas azules toda la cara y no solo su frontera).
Si ese es lo quieres hacer, entonces fíjate en el enlace anterior que te he puesto como yo creo una frontera de una cara de un cubo, luego a partir de eso hacer doble flor con plot3() para llenar de bolitas azuelas esa cara.
Pero tendrías que usar 12 for() para las 6 caras del cubo, es decir 2 for por cada cara.
De allí de repente puedes hacer un ajuste y usar menos for(). Pero por allí empezar.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

repetir graficas

Publicado por alx al_126@hotmail.com (15 intervenciones) el 03/04/2013 02:08:20
pero segun yo lo unico que hace falta es corregir los tres FORs porque ya estoy haciendo que repitan mi celda principal, solo que hay algo que me falla, no se si sea cuando declaro los FORS o cuando ocupo el plot3
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

repetir graficas

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 03/04/2013 02:52:14
Cuales son tus vértices de tu cubo?.
Solo corrí la parte de eje x y no tiene sentido la curva que genera.
Primero empieza definiendo tus vértices.
Pero primero dibuja una cara del cubo, solamente una cara, y cuando este ok, le agregas los demás.



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

repetir graficas

Publicado por alx al_126@hotmail.com (15 intervenciones) el 04/04/2013 01:25:26
las coordenadas varian, porque el el usuario debe de ingresar cuantas veces quiere que se repitan, ahorita hice esto
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
clear
clc
a=[0 %coordenadas en x
   1
   0
   0
   1
   1
   0
   1
   1
   .5
   .5
   0
   .5
   .5 ]
b=[0
   0    %coordenadas en y
   1
   0
   0
   1
   1
   1
   .5
   .5
   1
   .5
   .5
   0]
c=[0
   0
   0
   1
   1
   0
   1
   1
   .5   %coordenadas en z
   0
   .5
   .5
   1
   .5]
n=input('¿CUANTAS CELDAS TIENE EL CUBO FCC?')
x = 0:1:n; y = 0:1:n; z = 0:1:n;
 
[X1 Y1 Z1] = meshgrid(x([1 end]),y,z);
X1 = permute(X1,[2 1 3]); Y1 = permute(Y1,[2 1 3]); Z1 = permute(Z1,[2 1 3]);
X1(end+1,:,:) = NaN; Y1(end+1,:,:) = NaN; Z1(end+1,:,:) = NaN;              %hacer el cubo blanco
[X2 Y2 Z2] = meshgrid(x,y([1 end]),z);
X2(end+1,:,:) = NaN; Y2(end+1,:,:) = NaN; Z2(end+1,:,:) = NaN;
[X3 Y3 Z3] = meshgrid(x,y,z([1 end]));
X3 = permute(X3,[3 1 2]); Y3 = permute(Y3,[3 1 2]); Z3 = permute(Z3,[3 1 2]);
X3(end+1,:,:) = NaN; Y3(end+1,:,:) = NaN; Z3(end+1,:,:) = NaN;
 
%#figure('Renderer','opengl')
h = line([X1(:);X2(:);X3(:)], [Y1(:);Y2(:);Y3(:)], [Z1(:);Z2(:);Z3(:)]);
set(h, 'Color',[1 1 1], 'LineWidth',1, 'LineStyle','-')
hold on
%#set(gca, 'Box','on', 'LineWidth',2, 'XTick',x, 'YTick',y, 'ZTick',z, ...
%#  'XLim',[x(1) x(end)], 'YLim',[y(1) y(end)], 'ZLim',[z(1) z(end)])
%#xlabel x, ylabel y, zlabel z
axis off
view(3), axis vis3d
camproj perspective, rotate3d on
if (n<=1 && n>0)
    plot3(a,b,c,'o')
end
if (n<=0)
    disp('Usted no esta graficando nada')
else
k=[1
   1
   1
   1
   1
   1
   1    %aumento 1 en cada punto
   1
   1
   1
   1
   1
   1
   1]
m=n-1
hold on
 
    for k=0:m
    %plot3(a,b,c,'o')
    hold on
    plot3(a+k,b,c,'O')
    hold on
    plot3(a,b+k,c,'O')
    plot3(a,b,c+k,'O')
    plot3(a+k,b+k,c,'O')
    plot3(a,b+k,c+k,'O')
    plot3(a+k,b,c+k,'O')
    plot3(a+k,b+k,c+k,'O')
    %aumento en el eje de las x
    for k=0:m
        hold on
        plot3(a+k,b,c,'O')
        plot3(a,b+k,c,'O')
        plot3(a,b,c+k,'O')
        plot3(a+k,b+k,c,'O')
        plot3(a,b+k,c+k,'O')
        plot3(a+k,b,c+k,'O')
        plot3(a+k,b+k,c+k,'O')  %aumento en el eje de las y
        for k=0:m
            hold on
            plot3(a+k,b,c,'O')
            plot3(a,b+k,c,'O')
            plot3(a,b,c+k,'O')
            plot3(a+k,b+k,c,'O')
            plot3(a,b+k,c+k,'O')
            plot3(a+k,b,c+k,'O')
            plot3(a+k,b+k,c+k,'O')  %aumento en el eje de las z
        end
    end
    end
 
end
axis off
 
rotate3d on

uso el cubo blanco para guiarme, el problema es que no se llenan todas celdas pero segun yo el for ya esta bien no se si podrias revisar eso ultimo porfavor
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