Matlab - Transformacion3D

 
Vista:

Transformacion3D

Publicado por martin (1 intervención) el 21/03/2010 13:12:09
Hola!
soy Martin y soy nuevo en el foro.Me gustaria comentaros una duda que tengo en una aplicación que estoy desarrollando. Me gustaría crear una sub-función que sirviese para hacer una transformación geométrica 3D ( una rotación respecto al eje X de un cilindro).

El código de la función principal que he generado es el siguiente:

figure(1)
t=0:pi/10:2*pi;
[X,Y,Z]=cylinder(2 +cos(t));
surf(X,Y,Z)
axis square
k=1/2;
figure(2)
T1=[1 0 0;0 cos(k) -sin(k);0 sin(k) cos(k)];
G=T3D(X,Y,Z,T1);
surf(G)

El código de la sub-función que he programado:

function [G] = T3D(X,Y,Z,T)
X=reshape(X,1,size(X,1)*size(X,2));
Y=reshape(Y,1,size(Y,1)*size(Y,2));
Z=reshape(Z,1,size(Z,1)*size(Z,2));
M=[X;Y;Z];
G=T*M;
end

Muchisimas gracias,
un saludo.
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

RE:Transformacion3D

Publicado por David  (26 intervenciones) el 21/03/2010 14:47:21
MMM, ESTA COMO GRAVE LA COSA.........
INTENTA CON ESTO, A LO MEJOR TE SIRVA:

1. SIMPLEMENTE KREAS LA SUBFUNCIÓN CON LOS MISMOS PARÁMETROS PERO VARIAS LA FORMA DE GRAFICAR LA IMAGEN EN 3D, ES DECIR:

surf(Z,Y,X)
surf(Z,X,Y)
surf(Y,Z,X)
surf(Y,Z,X)

2. UTILIZA EL COMANDO "ROTATED3D"

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