Вы находитесь на странице: 1из 1

clear all close all clc %supongase que se quiere hacer andar un circulo en una trayectoria cuadrada %sobre

un plano. %Declaracin de variables de entrada bsicas: tinicial=0; %tiempo inicial tfinal=20; %tiempo final dt=0.1; %"largo" de paso del tiempo (seg) largoplano=0.1; %larg y ancho del plano donde girar la circuferencia dx=1e-3; %largo subdivisiones del plano (m) %Creacin de variables anexas a utilizar en el programa nx=largoplano/dx; %cantidad de divisiones del plano, o puntos a evaluar en este nt=(tfinal-tinicial)/dt; %cantidd de pasos en el tiempo plano=zeros(nx,nx,nt); %matriz 3D que contendr los planos a lo largo del tiempo "nt" %Para que un circulo describa una trayectoria cuadrada sobre un plano se %necesita saber el centro de la trayectoria cuadrada que este describir. %Como este programa deriva del que tiene la trayectoria circular, lo que se %ha hecho es copiar la trayectoria circular pero redondear el punto central %de la trayectoria, reemplazandolo as por un entero. Como est basado en %una trayectoria circular, se necesita tambin saber el radio de esta %trayectoria y claro el radio del circulo pequeo que ser el que describe %la trayectoria. Por lo anterior se crean las siguientes variables: XC=round(nx/2); %coordenada en x del centro del cuadrado descrito YC=round(nx/2); %coordenada en y del centro del cuadrado descrito RC=round((nx/2)-0.2*nx); %Radio de la circunferencia "transformada en cuad rado" rc=round(0.1*nx); %radio de la circunferencia pequea que avanzar desc ribiendo la trayectoria cuadrada %Para que pueda haber movimiento, tiene que pasar el tiempo, por tanto se %requiere crear un ciclo for para que este avance y as se pueda evaluar la %posicin en funcin del tiempo: for t=1:nt; %Se ubica el punto central del circulo pequeo que describir la %trayectoria cuadrada xc=round(RC*round(cos(2*pi*t*dt)))+XC; %Coordenada en x del circulo pequeo yc=round(RC*round(sin(2*pi*t*dt)))+YC; %Coordenada en y del circulo pequeo %Se llama al function que crear el movimiento, o, mejor dicho, ubicar %al circulo pequeo centro del plano [plano(:,:,t)]=circulo(plano(:,:,t),xc,yc,rc); tiempo=tinicial+t*dt; %Se crea el ploteo con imagesc para poder ver la trayectoria descrita, %en este caso se tiene el circulo ubicado en cada matriz dentro de la %matriz "plano", por tanto se necesita visualizar cada matriz completa. imagesc(plano(:,:,t));title(['Circulo describiendo trayectoria cuadrada, t=' ,num2str(tiempo),' (seg)']) pause(0.05); %se pausa para poder apreciar el movimiento, de lo contrario ira muy rapido y no se vera. end

Вам также может понравиться