Matlab - Problema crear graficas, como si fueran superficies

 
Vista:
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por jose (26 intervenciones) el 02/10/2018 09:10:52
Buenos dias, voy a intentar explicar cual es mi problema y como he intentado enfocarlo para ver si alguien tiene idea de como mejorar esto y salir del lio.

imaginar que mido un elemento (distancia desde el centro al borde) este dato lo guardo en un vector que a su vez tambien sabe para que grados esta midiendo.

Resumiendo. 0º---10cm giro la pieza 90º-----10 cm .......360º ---- 10 cm.

Vamos que tengo un bonito cuadrado.

ahora viene el proglema en cuestion. quiero graficar esto y darle volumen. Por ejemplo de 1 cm

La idea es despues subir un centrimetro y volver a realizar todas las medidas, poner otra vez los valores en el vector,...... graficarlo...... y darle volumen.........

Asi si mantengo la primera grafica y voy sumando otras pues podria ir formando una pequeña figura 3d.

he llegado hasta sacar la figura que he medido pero ya no se como darle volumen.

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
x = 0:90:360 % creo un vector que empieza en 0 y acaba en 360 con incrementos de 90 en 90
long1 = 0:90:360 % creo un vector que empieza en 0 y acaba en 360 con incrementos de 90 en 90
 
long1= [10,10,10,10]
 
/////////////////////////// esto solo sirve si quiero rellenar long1 con unos valores aleatorios para probar, vamos 
si no quiero un cuadrado y quiero una figura rara///////////////////////////////////////////////////////////////////////////////////////////
L = length(long1)-1
 
%para probar vamos a rellenar los valores de y de una forma aleatoria 
for n = 1:L
 % long1(n) =round(8*rand+6); % Genera números enteros aleatorios entre 2 y 10 );
end
 long1(L)=long1(1)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 plot(x,long1)
 
%el 90 es un valor igual que se usa en x, es para ajustar el paso entre
%cada dato
    [theta1,rho1] = cart2pol(10,long1)
 
%tehta1 no nos interesa. solamente rho1 ya que el valor donde hemos medido
%son los valores que estan en x
 
%pasamos los datos de x, que esta en grados a radianes
theta_radians = deg2rad(x);
 
%dibujamos el controno de la figura que supuestamente hemos escaneado.
polarplot(theta_radians,rho1)

la figura que me gustaria mantener y ir añadiendo otras el polarplot


Perdon por el toston pero digamos que aun estoy en fase de pensar como hago esto y vamos que va para largo
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/10/2018 15:17:31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clear
close all
x = 0:90:360; % creo un vector que empieza en 0 y acaba en 360 con incrementos de 90 en 90;
long1= [10,10,10,10 10];  % valor de radio para cada punto 
X=long1.*cos(pi*x/180);  % paso de coordenadas polares a coordenadas cartesianas  x=rcos(theta)
Y=long1.*sin(pi*x/180);   % paso de coordenadas polares a coordenadas cartesianas  y=rsin(theta)
plot3(X,Y,0*X)  % gráfica del cuadrado en  la base en el plano XY
hold on   % para agregar más curvas a la figura
view(64,55)  % para ver con una perspectiva adecuada
 for i=0:0.01:1   % para crear  cuadrados con un incremento de 0.01 en el eje Z
    plot3(X,Y,i*ones(1,length(X)),'b')   % gráfica de cada cuadrado con altura  i*ones(1,length(X))
     grid on
 end  % fin del bucle for 
hold off  % para dejar de agregar mas cuadrados en la figura   


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/10/2018 15:32:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear
figure(2)
close all
x = 0:5:360; % creo un vector que empieza en 0 y acaba en 360 con incrementos de 5 en 5;
L=length(x);
for n = 1:L
  long1(n) =round(8*rand+6); % Genera números enteros aleatorios entre 2 y 10 );
end
 X=long1.*cos(pi*x/180);  % paso de coordenadas polares a coordenadas cartesianas  x=rcos(theta)
 Y=long1.*sin(pi*x/180);   % paso de coordenadas polares a coordenadas cartesianas  y=rsin(theta)
 X=[X X(1)];  % para que la curva quede encerrada
 Y=[Y Y(1)];   % para que la curva quede encerrada.
 plot3(X,Y,0*X)  % gráfica de la base en el plano XY
hold on   % para agregar más curvas a la figura
 view(64,55)  % para ver con una perspectiva adecuada la figura
 for i=0:0.01:1   % para crear  cuadrados con un incremento de 0.01 en el eje Z
  plot3(X,Y,i*ones(1,length(X)),'b')   % gráfica de cada cuadrado con altura  i*ones(1,length(X))
 grid on   % para poner malla a la gráfica
 end  % fin de bucle for
 hold off  % para dejar de agregar mas curvas en la figura


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por Jose (26 intervenciones) el 02/10/2018 15:54:50
Sin lugar a dudas cumple su cometido perfectamente, realiza justo lo que queria, ahora tengo que implementarlo un poco mas, ya que esto seria para un lectura de 360 de una figura.
La idea es que ahora el sensor suba una distancia z=...... en este caso el ancho del sensor a usar para medior o cualquier otro valor modificable.

realizare varias medias a diferentes altura para alfinal poder escanear el objeto en cuestion.

Muchas gracias por su ayuda. vamos a ver si soy capaz de continuar.
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/10/2018 16:29:00
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
clear
close all
x = 0:5:360; % creo un vector que empieza en 0 y acaba en 360 con incrementos de 5 en 5;
L=length(x);
for n = 1:L
  long1(n) =round(8*rand+6); % Genera números enteros aleatorios entre 2 y 10 );
end
 X=long1.*cos(pi*x/180);  % paso de coordenas polares a coordenas cartesianas  x=rcos(theta)
 Y=long1.*sin(pi*x/180);   % paso de coordenas polares a coordenas cartesianas  y=rsin(theta)
 X=[X X(1)];  % para que la curva quede encerrada
 Y=[Y Y(1)];   % para que la curva quede encerrada.
 
for z=1:5:20
     figure(z)
 plot3(X,Y,0*X)  % gráfica de la base en el plano XY
hold on   % para agregar más curvas a la figura
 view(111,21)  % para ver con una perspectiva adecuada
 color=rand(1,3);
 for i=0:0.01:z   % para crear  cuadrados con un incremento de 0.01 en el eje Z
  plot3(X,Y,i*ones(1,length(X)),'color',color)   % gráfica de cada cuadrada con altura  i*ones(1,length(X))
 grid on   % para poner malla a la gráfica
 end  % fin de bucle for
 hold off  % para dejar de agregar mas curvas en la figura
 pause(1)
 end


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matla
b

http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema crear graficas, como si fueran superficies

Publicado por jose (26 intervenciones) el 02/10/2018 18:09:22
Gracias nuevamente pero este codigo genera varias graficas y la idea es la siguiente, saco los diferentes niveles tal y como realizastes en el codigo superior.
Una vez que saco cada nivel lo que hago es unir las los puntos de x,y, de cada nivel con los inmediatamente inferiores asi delimito lo que serian unas caras planas de la figura.
Esto en el primer ejemplo lo hacias creando unos restangulos pero seria un problemas si las dos superfiecies fueran distintas...

Esta es la idea. para poder ilustrar mejor lo que tengo en mente quedaria algo asi como la foto que pongo. a la izquierda estan los valores leidos que forman la superficie y a la derecha como quedaria despues de poner los planos laterales entre cada cara.



Saludos
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