Professional Documents
Culture Documents
I. OBJETIVOS
II. MARCO TEORICO
switch (Vec) %DADA LA OPCION SE ESCOGERA UNA OPERACION DIFERENTE PARA CADA CASO
case ('x') %SI ME DAN A ESCOGER EL EJE X
T= eleccejeXMHR (teta); %TENGO UNA FUNCION QUE DESARROLLARA LA MATRIZ CON
EL ANGULO DADO
disp(T) %SE ME MOSTRARA DICHA MATRIZ
case ('y')
T= eleccejeYMHR (teta);
disp(T)
case ('z')
T=eleccejeZMHR (teta);
disp(T)
otherwise %EN EL CASO QUE NO SE COLOQUE LAS OPCIONES DADAS
disp('No has elegido bien')
end
Rpta=T;
case('t')
fprintf=('Ingrese el vector posicion, colocando cada unidad en el
eje');%Ingresado en vector
a=input('Movimiento en el eje x =');
b=input('Movimiento en el eje y =');
c=input('Movimiento en el eje z =');
Tras=[1 0 0 a; 0 1 0 b; 0 0 1 c; 0 0 0 1];
disp(Tras)
Rpta=Tras;
end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0 \n');
while (Mov==1) %ESTE CICLO SEGUIRA MIENTRAS SE SELECCIONE 1
if(Rpta==T)
MH=input('Ingrese r si es rotacion y t si es traslacion \n','s');
switch(MH)
case('r')
fprintf ('Ingrese angulo de rotacion \n ');
teta=input ('Angulo= ');
Vec1=input('Ingrese el eje= ','s');
switch (Vec1)
case ('x')
R= eleccejeXMHR (teta);
disp(R)
case ('y')
R= eleccejeYMHR (teta);
disp(R)
case ('z')
R=eleccejeZMHR (teta);
disp(R)
end
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=R*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE PREMULTIPLICARA
LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*R;
disp(T)
end
case('t')
fprintf=('Ingrese el vector posicion, colocando cada unidad en el
eje');%Ingresado en vector
a=input('Movimiento en el eje x =');
b=input('Movimiento en el eje y =');
c=input('Movimiento en el eje z =');
Tras1=[1 0 0 a; 0 1 0 b; 0 0 1 c; 0 0 0 1];
disp(Tras1)
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=Tras*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE
PREMULTIPLICARA LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*Tras;
disp(T)
end
end
elseif (Rpta==Tras)
end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0 \n');% ES
IMPORTANTE VOLVER A PREGUNTAR
%O MOV SEGUIRA SIENDO 1 SIEMPRE Y EL BUCLE SERA INFINITO
end