TIRO PARABOLICO

ACTUALIZACION:

Una nueva versión del código la encuentran la encuentran aquí.

El ultimo mes de programacion en la uni fue algo extraño, desde que nos cambiaron al profesor y la llegada del maestro con el que terminariamos, pero bueno como "proyecto" final me dejo hacer los calculos para el tiro parabolico, el programita hecho en java es este:

class TiroParabolico
{
        public static void main(String args[])
        {
                if(args.length != 2)
                {
                       System.out.println("ERROR: ingresa la velocidad y el angulo incial :n"+
                       "$ java TiroParabolico 50 40n"+"Siendo 50 la velocidad y 40 el angulo.");
                }
                else
                {
                        double velocidad = Integer.parseInt(args[0]);
                        double angulo    = Integer.parseInt(args[1]);

                        Calculos calculos = new Calculos();
                        calculos.Operaciones(angulo, velocidad);
                }
        }
}

Claro aun me falta validar los datos que se ingresan para evitar que ingresen numeros negativos.

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;
            System.out.println("Distancia recorrida : "+Distancia()+" m");
            System.out.println("Tiempo de recorrido : "+Tiempo()+" s");
            System.out.println("A una velocidad de  : "+Velocidad()+" m/s");
            System.out.println("Con 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;
        }
               
}

Simple no??? aun no esta terminado del todo, creo que le falta algo si alguno sabe como hacer mejor el codigo o que me recomiendan para mejorarlo.

la salida es esta:

hreyes@Ubuntu:~/Projects/java/Proyect$ java TiroParabolico 50 45
Distancia recorrida : 255.1020408163265 m
Tiempo de recorrido : 7.215375318230077 s
A una velocidad de  : 50.0 m/s
Con una altura maxima de : 63.77551020408162 m

Hare el intento de agregarle una ventanita :P

Anuncios

34 comentarios en “TIRO PARABOLICO

  1. Alexander writes:Oye amigo necesito q me hagas un favor…. Ayudeme con el codigo del movimiento parabólico pero en c++…. Muchas gracias.

  2. JOAC writes:Tiro parabolico en C#.NET————————-using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TiroParabolico{ public partial class Form1 : Form { const double gravedad = 9.8; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { double velocidad = double.Parse (textBox1.Text); int angulo = int.Parse(comboBox1.Text); //angulo a radianes: double AngRad = (System.Math.PI * angulo) / 180; //tiempo: t = 2*vo*sen(θ) / g double tiempo = (2 * velocidad * System.Math.Sin(AngRad)) / gravedad; //distancia maxima: x = vo^2 * sen(θ) / g double Xmax = (System.Math.Pow(velocidad, 2) * System.Math.Sin(AngRad)) / gravedad; //altura maxima: y = vo^2*sen^2(θ) / 2g double Ymax = (System.Math.Pow(velocidad, 2) * System.Math.Sin(AngRad) * System.Math.Sin(AngRad)) / (2 * gravedad); textBox2 .Text = Convert.ToString (Ymax); textBox3 .Text = Convert .ToString (Xmax); textBox4 .Text = Convert .ToString (tiempo); } }}

  3. jp writes:Hola he tratado de hacer correr el programa y no lo logro, todo el codigo va en una sola clase main? o debo hacer dos clases con alguna principal que muestre por pantalla la info?Por favor explicame como montarlo en java porque me seria de muchisima utilidad.Cordialmente,

  4. jp writes:ya logre que corriera separandolo en 2 clases, ahora no se donde meterle los valores. para que de la salida que aparece en tu publicacion. Porfavor ayudame para saber donde introducir los valores. gracias

  5. hola jpmira si ya lograste compilarlo, no se que sistema operativo uses, pero abre un consola o el cmd y te mueves al directorio donde lo compilaste y lo ejecutas asi:java TiroParabolico 50 4550 es la velodidad y 45 el angulobueno, el TiroParabolico es el nombre de la clase principal, si es que le pusiste el mismo nombre lo dejas asi, pero si lo cambiaste coloca el que le pusiste.

  6. jp writes:Hector logre compilarlo, me dice cuando lo corro el mensaje puesto por ti en el codigo, ERROR ingrese la velocidad y el angulo inicial…. Yo necesito hacerlo valido para cualquier velocidad y angulo. Yo no soy programador experimentado y a duras penas lo logre montar en eclipse, poniendo una clase principal y otra con tiroparabolico. No pude comprender como es lo del cmd o lo de la consola, yo lo ejecuto dandole al boton de PLAY verde superior y esa es la salida que me da. Como hago para introducir los valores para que me de una salida parecida a la tuya?Cordialmente,

  7. jp writes:perdon creo que no me explique bien.en la consola de eclipse me saleERROR: ingrese la velocidad y el angulo inicial.necesito saber donde meter los valores de la velocidad y el angulo para que me de la salida con los resultados en la consola, en mejores palabras, ¿En que parte del codigo meto los numeros de la velocidad y el angulo?cordialmente,

  8. luis writes:Pues yo modifique un poco tu codigo y le introduje unos JOption para pedir los datos, eso si no valida nada asi que abusados con meterle letras o numeros negativosesta es la clase que corre el programa, solo necesitan esta y utilizan la que ya existe aqui que se llama: Calculo//———————————————–import javax.swing.JOptionPane;class TiroParabolico{ static String temp=""; public static void main(String args[]) { temp=JOptionPane.showInputDialog(null,"Velocidad","Datos",JOptionPane.QUESTION_MESSAGE); double velocidad = Double.parseDouble(temp);//Integer.parseInt(args[0]); temp=JOptionPane.showInputDialog(null,"Velocidad","Datos",JOptionPane.QUESTION_MESSAGE); double angulo = Double.parseDouble(temp); //Integer.parseInt(args[1]); Calculos calculos = new Calculos(); calculos.Operaciones(angulo, velocidad); }}

  9. SOFIA writes:hola!!! alomejor me diras lo mismo que un chico que te comento acerca de "si le podias mandar el programa modificado en dev c++" y que tu contestaste "no tengo tiempo" ammmm….. ps de vdd lo necesito, digo!! no te estoy pidiendo que me lo hagas ni mucho menos, si kieres te mando lo que e hecho, es que… no puedo!! :( no puedo terminarlo!!! por fis.. me ayudas T_T?? te lo agradeceria mucho. Sea cual sea tu respuesta te lo agradesco. Bye

  10. Luis writes:Hola HectorPodrias poner el código final con el Joption que te sugirió el otro Luis, no encuentro como agregarlo.Muchas gracias por tu atención

  11. Slacker616 writes:UUUUy te pasaste, me ayudaste un monton, me dejaron este proyecto pero en la clase de fisica, raro no? hacer un programa.. xDpero bueno, solo me falta investigar como hacer el grafico con la proyectil moviendose :$

  12. Anonymous writes:Hola Héctor, Mi nombre es Cristian, estamos cotizando el crear una revista en linea, cres que nos podrias ayudar con un simulador de fisicas simples???, ejemplo tiro parbolico, reflectancia y cosas por el estilo??, es para visualizarse en linea, te pido de favor si me puedes dar tu correo para contactarnos… mi correo es cristian@chivasentada.com, espero me respondas lo antes posible.

  13. Anonymous writes:Hola hector, una pregunta como puedo sustituir pow de math por otra cosa, lo ke pasa es que yo lo hago para mi proyecto de un videojuego para celuluar como el juego de "angry birds" pero para movil,pero no me marca error en el pow, como lo puedo sustituir o ke hace ese "pow" saludos.

  14. Holalo que hace Math.pow(base,exponente) elevar una base a un exponente, ejemplo 2^3=8, siendo 2 la base y 3 el exponenteLo que puedes hacer es implementar tu propia función que haga eso, es algo muy simple realmentesaludos

  15. Felix Ramirez writes:Hola Héctor.. por casualidad sabras como simular un tiro parabolico en java?? (PARA LA PARTE GRAFICA usando swim) Gracias.

  16. Hola Felixdesgraciadamente hace mucho que no programo en java y ya no he continuado con la implementacion grafica de este ejemplo, lo lamento :o

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