10 junio 2011

Tiro parabólico


Dibujar una parábola es fácil: basta aplicar la ecuación y = a* x2 + bx + c, de modo que se obtiene un valor de y para cada valor de x.

Es un poco más complejo cuando se trata de un tiro parabólico, que sale desde unas ciertas coordenadas, con una cierta velocidad inicial y un cierto ángulo. La ecuación es de la forma:

y = x · tan a - ( g · x2 / 2 · v2 · cos2 a)

(siendo a el ángulo de salida, v la velocidad inicial, g la constante de la gravedad 9.8)

Para un programa de ordenador, posiblemente habría que cambiar el signo de Y, si las coordenadas de pantalla empiezan en la esquina superior izquierda de la pantalla y crecen hacia abajo. También puede ser necesario ajustar la escala, para no salirnos muy rápido de las coordenadas de la pantalla (por ejemplo, dividiendo entre 10).

Un fuente en Basic256 para dibujar este movimiento podría ser así:

REM Datos del punto de origen
x1 = 10
y1 = 90

REM Datos del punto final
x2 = 200

REM gravedad, angulo de salidad y velocidad inicial
g = 9.8
a = 70
v = 40


REM Borrar pantalla gráfica
clg

REM Parte repetitiva
for x = x1 to x2 step 2
REM Ecuacion de Y a partir de X en tiro parabolico
REM y = x · tan a - ( g · x2 / 2 · v2 · cos2 a)
y = x * tan(radians(a)) - (( g* x* x) / (2 * v * v * cos(radians(a))* cos(radians(a)) ))
REM Cambio la escala a 1/10 para que se vea mejor
y = y1 - (y / 10)
plot x, y
pause 0.1
next x

(Más detalles sobre estas ecuaciones, por ejemplo en estos sitios:)


(la imagen animada está tomada de este último artículo)