Sei sulla pagina 1di 8

Problema 1

clear all
clc
f=0;
while f==0
q=input('Ingrese el angulo de Rotacion: ');
w=input('Ingrese eje: ','s');
u=input('Ingrese la componente en X a trasladar: ');
v=input('Ingrese la componente en Y a trasladar: ');
w=input('Ingrese la componente en Z a trasladar: ');
x=0;
y=0;
z=0;
if w=='x'
w=1;
end
if w=='y'
w=2;
end
if w=='z'
w=3;
end
[T]=traslacion(q,w,u,v,w);
T
f=1;
end

function [R] = traslacion(angulo,eje,x,y,z)


if eje==1
a=(angulo*2*pi)/360;
R=[1 0 0 x;0 cos(a) -sin(a) y;0 sin(a) cos(a) z;0 0 0 1];
end
if eje==2
a=(angulo*2*pi)/360;
R=[cos(a) 0 sin(a) x;0 1 0 y;-sin(a) 0 cos(a) z;0 0 0 1];
end
if eje==3
a=(angulo*2*pi)/360;
R=[cos(a) -sin(a) 0 x;sin(a) cos(a) 0 y;0 0 1 z;0 0 0 1];
end
Problema 2
clear all
clc
cor=0;
cor1=0;
while cor==0
eje=input('Ingrese eje de giro (x y z): ','s');
if eje=='x' || eje=='y' || eje=='z'
cor=1;
end
end
while cor1==0
angulo=input('Ingrese angulo de giro (a b t): ','s');
if angulo=='a' || angulo=='b' || angulo=='t'
cor1=1;
end
end
u=int2str(input('Ingrese la componente en X a trasladar: '));
v=int2str(input('Ingrese la componente en Y a trasladar: '));
w=int2str(input('Ingrese la componente en Z a trasladar: '));
if eje=='x'
fprintf ('R(x,')
fprintf (angulo)
fprintf (')=')
fprintf '\n'
fprintf ('1 0 0')
fprintf (' ')
fprintf (u)
fprintf '\n'
fprintf ('0 ')
fprintf ('cos(')
fprintf (angulo)
fprintf (') ')
fprintf ('-sen(')
fprintf (angulo)
fprintf (')')
fprintf (' ')
fprintf (v)
fprintf '\n'
fprintf ('0 ')
fprintf ('sen(')
fprintf (angulo)
fprintf (') ')
fprintf (' cos(')
fprintf (angulo)
fprintf (')')
fprintf (' ')
fprintf (w)
fprintf '\n'
fprintf ('1 0 0 1')
fprintf '\n'
end
if eje=='y'
fprintf ('R(y,')
fprintf (angulo)
fprintf (')=')
fprintf '\n'
fprintf (' cos(')
fprintf (angulo)
fprintf (') 0 ')
fprintf ('sen(')
fprintf (angulo)
fprintf (')')
fprintf (' ')
fprintf (u)
fprintf '\n'
fprintf (' 0 1 0')
fprintf (' ')
fprintf (v)
fprintf '\n'
fprintf ('-sen(')
fprintf (angulo)
fprintf (') 0 ')
fprintf ('cos(')
fprintf (angulo)
fprintf (')')
fprintf (' ')
fprintf (w)
fprintf '\n'
fprintf (' 1 0 0 1')
fprintf '\n'
end
if eje=='z'
fprintf ('R(z,')
fprintf (angulo)
fprintf (')=')
fprintf '\n'
fprintf ('cos(')
fprintf (angulo)
fprintf (')')
fprintf (' -sen(')
fprintf (angulo)
fprintf (') 0')
fprintf (' ')
fprintf (u)
fprintf '\n'
fprintf ('sen(')
fprintf (angulo)
fprintf (')')
fprintf (' cos(')
fprintf (angulo)
fprintf (') 0')
fprintf (' ')
fprintf (v)
fprintf '\n'
fprintf (' 0 1 0')
fprintf (' ')
fprintf (w)
fprintf '\n'
fprintf (' 1 0 0 1')
fprintf '\n'
end
Problema 3
clear all
clc
R=1;
f=0;
cor=0;
cor1=0;
while f==0
while cor==0
m=input('Hara rotacion o translacion? r/t: ','s');
if m=='r' || m=='t'
cor=1;
end
end
if m=='r'
q=input('Ingrese el angulo de Rotacion: ');
j=input('Ingrese eje: ','s');
u=0;
v=0;
w=0;
end
if m=='t'
u=input('Ingrese la componente en X a trasladar: ');
v=input('Ingrese la componente en Y a trasladar: ');
w=input('Ingrese la componente en Z a trasladar: ');
q=0;
j=4;
end
while cor1==0
e=input('Seleccione el eje fijo o movil f/m: ','s');
if e=='f' || e=='m'
cor1=1;
end
end
x=0;
y=0;
z=0;
if j=='x'
j=1;
end
if j=='y'
j=2;
end
if j=='z'
j=3;
end
[T]=traslacion(q,j,u,v,w);
if e=='f'
R=T*R
end
if e=='m'
R=R*T
end
g=input('Termino los movimientos? y/n : ','s');
cor=0;
cor1=0;
if g=='y'
f=1;
end
end
0.3535 −0.707 0.6123 0
𝑅 = [ 0.866 0 −0.5 0]
0.3535 0.707 0.6123 0
0 0 0 1
0.433 −0.866 0.25 0
𝑇 = [ 0.75 0.5 0.433 0]
−0.5 0 0.866 8
0 0 0 1
1 0 0 0
𝑅 = [0 0 −1 0]
0 1 0 0
0 0 0 1

Potrebbero piacerti anche