miércoles, 21 de mayo de 2008

Código en Matlab de un cubo con coordenadas xyz

n=6; %cantidad de puntos

cant_data=3*n; %cantidad de componentes las articulaciones y puntos

l1=3; %longitud del primer brazo

fid=fopen('memoria.m','r'); %comando que abre el archivo para lectura

status=fseek(fid,15,-1); %comando que se saltea los primeros
%digitos del archivo que son datos
%irrelevantes en este caso
[A, count]=fscanf(fid,'%d'); %comando que levanta los valores de
%interés y los carga en una matriz (A)

art21=A(1:cant_data)/100000 %se acomodan los datos
art22=A(cant_data+1:(2*cant_data))/100000 %que antes(dsp) se habían
punto=A(2*cant_data+1:(3*cant_data))/100000 %multiplicado por 100000 se
%ordenan segun correspondan
%a articulaciones o extremo

%Graficas

figure
plot3([0 0],[0 0],[0 l1]);
title('Gráfica de las trayectorias calculadas por el Dsp')
%DSP es un microprocesador controlado
hold on

%Ploteo de la primer trayectoria

for i=1:n
plot3([0 art21(3*i-2)],[0 art21(3*i-1)],[l1 art21(3*i)]);
plot3([art21(3*i-2) punto(3*i-2)],[art21(3*i-1) punto(3*i-1)],[art21(3*i) punto(3*i)]);
plot3(punto(3*i-2), punto(3*i-1),punto(3*i),'*');
grid on
hold on
axis ([-3 3 -3 3 -3 3])
pause
end

%Ploteo de la segunda trayectoria

for i=1:n
plot3([0 art22(3*i-2)],[0 art22(3*i-1)],[l1 art22(3*i)],'g');
plot3([art22(3*i-2) punto(3*i-2)],[art22(3*i-1) punto(3*i-1)],[art22(3*i) punto(3*i)],'g');
grid on
hold on
axis ([-3 3 -3 3 -3 3])
pause
end

1 comentario:

William dijo...

Hola soy nuevo en esto de la programacion con matlap y estudio mecatronica no se si me pudieras orientar en un programa que tiene que encontrar puntos en el plano de xyz