TIRO PARABOLICO -ACTUALIZACIÓN-

El post sobre Tiro Parabólico en Java es de los que mas visitas ha tenido desde que lo publique :D y la mayoría ha sido pidiéndome que reescriba ese código en C++ :rolleyes: pero por cuestiones de tiempo no lo he hecho :whistle:

Al igual que ha tenido contribuciones ese código, una persona (JOAC) lo reescribio para C# :yes: y otra (Luis) agrego un JOptionPane para que ya no se tenga que ingresar los datos desde consola, gracias a los dos por sus contribuciones :up:

Y como es de los post mas populares y por la petición de uno de los que lo visitaron, agregue lo que Luis había hecho al hacer uso del JOptionPane y el resultado es:

Main.java

/**
 * @author Héctor
 * @colaborador luis (perdon por no poner mas datos pero solo se que se llama luis :D )
 * @creado el 11 Deciembre 2006
 * @modificado el 24 de Junio de 2010
 *
 */
package tiroparabolico;

import javax.swing.JOptionPane;

public class Main {

    static String temp = "";

    public static void main(String[] args) {
        temp = JOptionPane.showInputDialog(null, "Velocidad", "Datos", JOptionPane.QUESTION_MESSAGE);
        double velocidad = Double.parseDouble(temp);
        temp = JOptionPane.showInputDialog(null, "Angulo", "Datos", JOptionPane.QUESTION_MESSAGE);
        double angulo = Double.parseDouble(temp);
        Calculos calculos = new Calculos();
        calculos.Operaciones(angulo, velocidad);
    }
}

Calculos.java

/**
 * @author Héctor
 * @creado el 11 Deciembre 2006
 * @modificado el 31 de Octubre de 2010
 *
 */

package tiroparabolico;

import javax.swing.JOptionPane;

public class Calculos {

    double Angulo;
    double Altura;
    double Velocidadi;
    double Distancia;
    double Velocidadx;
    double Velocidady;
    double Velocidadf;
    double Tiempo;

    public void Operaciones(double angulo, double velocidad) {
        Angulo = angulo;
        Velocidadi = velocidad;
        JOptionPane.showMessageDialog(null, "Distancia recorrida : " + Distancia() + " m"
                + "nTiempo de recorrido : " + Tiempo() + " s"
                + "nA una velocidad de  : " + Velocidad() + " m/s"
                + "nCon una altura maxima de : " + Altura() + " m");
    }

    double Distancia() {
        Distancia = ((Math.pow(Velocidadi, 2) * (Math.sin(Math.toRadians(Angulo * 2)))) / 9.8);
        return Distancia;
    }

    double Tiempo() {
        Tiempo = ((2 * Velocidadi) * (Math.sin(Math.toRadians(Angulo)))) / 9.8;
        return Tiempo;
    }

    double Velocidad() {
        Velocidadx = (Velocidadi * Math.cos(Math.toRadians(Angulo)));
        Velocidady = (Velocidadi * Math.sin(Math.toRadians(Angulo)) - 9.8 * Tiempo);
        Velocidadf = (Math.sqrt(Math.pow(Velocidadx, 2) + Math.pow(Velocidady, 2)));
        return Velocidadf;
    }

    double Altura() {
        Altura = ((Math.pow(Velocidadi, 2) * Math.pow(Math.sin(Math.toRadians(Angulo)), 2)) / (9.8 * 2));
        return Altura;
    }
}

La recomendación continua siendo la misma que Luis nos había hecho:

… no valida nada así que abusados con meterle letras o numeros negativos esta es la clase …

Los cambios son mas esteticos que nada, ya que se pasa de esto:

A esto:

Espero les sea de utilidad :D

Anuncios

8 comentarios en “TIRO PARABOLICO -ACTUALIZACIÓN-

  1. Anonymous writes:hola, yo te quiero preguntar una cosa:si la altura inicial fuera de 10 metros, que tendría que cambiar para que la tomara dicha altura, lo mismo si la altura final fuera diferente de 0

  2. Alvaro writes:Hector, este programa esta muy bueno, pero seria muy bueno que graficar, voy a tratar de poder hacer lo, pero me gustarias que tu tambien intentaras, y todos los que quieran aportar a esta nueva OPCION!!!

  3. anonimus writes:Excelente programa, la verdad seria de gran aporte que pudieramos lograr que graficara, lo estoy intentando pero esta un poco complicado

  4. Fer_coder writes:No se si estoy reviviendo tema viejo, pero lo estoy graficando si me sale lo publico ya que me sirvio de base para una tarea

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s