lunes, 25 de abril de 2016

Tiro parobolico en Processing

  Simulación de tiro parabólico

El siguiente vídeo explica el tiro parabólico y sus ecuaciones para describir la trayectoria de un proyectil.
 

Esta simulación emplea las ecuaciones del movimiento parabólico para simular la trayectoria de un proyectil con una gravedad de 9.8 con ángulos entre 0 y 90 grados y velocidades iniciales entre 0 y 100

Simulación y código de ejemplo



En este ejemplo se generan de manera aleatoria los valores de la velocidad inicial entre 0 hasta 100 y del ángulo de disparo entre 0 y 90 grados. El color del proyectil también se genera de manera aleatoria.
El tiempo se incrementa en 0.05 por cada iteración del ciclo draw, la condición de reinicio del programa se da cuando la posición Y del misil es menor a cero es decir el proyectil a tocado el suelo.
la función point(X,height-Y) gráfica el proyectil donde height es el alto de la pantalla de dibujo o lienzo.

Código de ejemplo

float AnguloRadianes, AnguloGrados, X, Y;
float V, V0, V0X, V0Y, VX, VY, t, g;
int R, G, B;
void setup() {
  size(640, 480);
  background(250);
  g=9.8;
  t=0.0;
  V0=100;
  AnguloGrados=45;
  R=0;
  G=0;
  B=0;
  strokeWeight(5);
  stroke(R, G, B);
}
void draw() {
  AnguloRadianes=radians(AnguloGrados);
  V0X=V0*cos(AnguloRadianes);
  V0Y=V0*sin(AnguloRadianes);
  VX=V0X;
  VY=V0Y-g*t;
  V=sqrt(VX*VX+VY*VY);
  X=VX*t;
  Y=(V0Y*t)-((g/2)*(t*t));
  point(X, height-Y);
  if (Y>=0) {
    t+=0.05;
  } else {
    V0=random(100);
    AnguloGrados=random(90);
    t=0.0;
    R=int(random(255));
    G=int(random(255));
    B=int(random(255));
    stroke(R, G, B);
  }
}