You are on page 1of 6

% ESCUELA SUPERIOR POLITECNICA DEL LITORAL % MAESTRIA EN ENSEANZA DE LA FISICA % FISICA COMPUTACIONAL % MOVIMIENTO DE PROYECTILES % DISPARO DE PROYECTILES % INTEGRANTES:

ING. ROBERTH SANCHEZ % LCDA. NARCISA QUINTO

%I N I C I O clear;

%INGRESO DE DATOS angulo = input('ANGULO DE DISPARO:'); vo = input('VELOCIDAD DE DISPARO:');

%PROCESO %Constantes xo = 3250; % posicion inicial en x yo = 3750; % posicion inicial en y g = 9.8;%m/s^2 aceleracion de la gravedad factor = 4; % Factor para mostrar los vectores velocidad mas grandes P = 20000; % Me delimita los ejes en X y en Y

t = 0:.2:60; % Creo una matriz (1X301) de tiempo, de 0 - 60 segundos. con intervalos de 0.2 segundos alfa = angulo*pi/180;

vox = vo*cos(alfa); % Descompongo la velocidad inicial de disparo del proyectil en una velocidad en X voy = vo*sin(alfa); % Descompongo la velocidad inicial de disparo del proyectil en una velocidad en Y

% Aqui encuentro la posicion en X y en Y para cada instante de tiempo y % obtengo dos matrices de 1X301 x = xo + vox*t; y = yo + voy*t - (g/2)*(t.*t);

% Genero una matriz (1X301) de velocidades en X para luego generar los vectores con quiver vx = vox; n = length(t); punto =1; while punto <= n vx(punto) = vox; punto = punto+1; end

% Calculo la velocidad en Y para todos los tiempos de 0 - 60 con intervalos de 0.2 segundos. % y los guardo en una matriz (1X301) de velocidades en Y para luego generar los vectores con quiver vy = voy - g*t;

% SALIDA. PRESENTACION DE RESULTADOS scrsz = get(0,'ScreenSize');

figure('Position',[0 1 scrsz(4)*3.3/2 scrsz(4)*4.5/5]); hold on;

text(P/2,P ,'DISPARO DE PROYECTILES' ,'HorizontalAlignment','center','BackgroundColor',[.7 .9 .1],'Margin',10); text(8*P/10,8*P/10-2*P/20,['VELOCIDAD = ',num2str(vo)],'HorizontalAlignment','center','BackgroundColor',[.7 .9 .7]); text(8*P/10,8*P/10-3*P/20,['ANGULO = ',num2str(angulo)],'HorizontalAlignment','center','BackgroundColor',[.7 .9 .7]);

% Construye el punto de disparo y1=[3000 3000 0 0 3100 3100]; x1=[0 3000 3000 3100 3100 0]; plot(x1,y1);

% Construye el caon canony = [3100 3400 3700 3800 3500 3100]; canonx = [3000 2800 3300 3200 2700 2500]; plot(canonx,canony);

% Construye el punto del objetivo y2=[ 0 7000 7000 0];

x2=[18000 18000 17000 17000]; plot(x2,y2);

% Construye el objetivo

objetivoy = [ 7000 7600 7600 7000]; objetivox = [17800 17800 17200 17200]; plot(objetivox,objetivoy,'color','r');

xlim([0 P]); ylim([0 P]); pause;

%image(dibujo); n = length(t); punto =1; objetivo_derribado = 0; % 0 no se haimpactado al objetivo, 1siseha impactado

while (punto<=n) && (y(punto)>= 0) && (objetivo_derribado == 0) plot(x(punto),y(punto),'ro');

xlim([0 P]); ylim([0 P]); hold on;

text(P/2,P ,'DISPARO DE PROYECTILES' ,'HorizontalAlignment','center','BackgroundColor',[.7 .9 .1],'Margin',10); text(8*P/10,8*P/10-2*P/20,['VELOCIDAD = ',num2str(vo)],'HorizontalAlignment','center','BackgroundColor',[.7 .9 .7]); text(8*P/10,8*P/10-3*P/20,['ANGULO = ',num2str(angulo)],'HorizontalAlignment','center','BackgroundColor',[.7 .9 .7]);

% Construye el punto de disparo y1=[3000 3000 0 0 3100 3100]; x1=[0 3000 3000 3100 3100 0]; plot(x1,y1);

% Construye el caon canony = [3100 3400 3700 3800 3500 3100]; canonx = [3000 2800 3300 3200 2700 2500]; plot(canonx,canony);

% Construye el punto del objetivo y2=[ 0 7000 7000 0];

x2=[18000 18000 17000 17000]; plot(x2,y2);

% Construye el objetivo objetivoy = [ 7000 7600 7600 7000]; objetivox = [17800 17800 17200 17200]; plot(objetivox,objetivoy,'color','r');

plot(x,y,'k:'); % podemos desactivar esta linea para que no sevea lalinea delaparabola

quiver(x(punto),y(punto), 0, factor*vy(punto),'k'); quiver(x(punto),y(punto), factor*vx(punto), 0,'r'); quiver(x(punto),y(punto), factor*vx(punto), factor*vy(punto),'b');

if (y(punto)>= 7000) && (y(punto)<= 7600) && (x(punto)>= 17200) && (x(punto)<= 17800) objetivo_derribado = 1; end

punto = punto+1; pause(0.00001); hold off; end

% FIN

You might also like