Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2014, 15:48
scuvi96
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 9 años, 6 meses
Puntos: 0
Problema proyectil

Buenas, les explico:

Mi ejercicio es el siguiente:

<<<<<<Descripción: Comparar las órbitas de dos satélites, uno de ellos con
un cohete pequeño que lo acelera:
Parte A: Modificaciones a la clase Satelite
• Añadir un nuevo método similar a avanzaTiempo en el que a la
aceleración se le suma el efecto del cohete:
- vector en la dirección de vector de velocidad, cuyo módulo se pasa
como un nuevo parámetro (en m/s2)>>>>>>


La clase satelite es la siguiente, en esta está implementado el método avanzaTiempo:

public class Satelite
{
/**
* Constructor para objetos de la clase Satelite
*/
double posX;
double posY;
double vx;
double vy;
double G=6.674e-11;
double MT=5.98e24;

/**
* Métodos para valores iniciales del constructor
*/
public Satelite (double vxIni, double vyIni)
{
this.posX=0;
this.posY=15e6;
this.vx=vxIni;
this.vy=vyIni;
}

public double posX()
{
return this.posX;
}

public double posY()
{
return this.posY;
}

public void avanzaTiempo (double t)
{
double ax= ((G*MT)/(posX*posX+posY*posY))*((-posX)/(Math.sqrt(posX*posX+posY*posY)));
double ay= ((G*MT)/(posX*posX+posY*posY))*((-posY)/(Math.sqrt(posX*posX+posY*posY)));
posX= (posX+(vx*t)+(ax*(t*t)/2));
posY= (posY+(vy*t)+(ay*(t*t)/2));
vx= vx+ax*t;
vy= vy+ay*t;
}

public void avanzaTiempoCohete (double t)
{
double ax= ((G*MT)/(posX*posX+posY*posY))*((-posX)/(Math.sqrt(posX*posX+posY*posY)));
double ay= ((G*MT)/(posX*posX+posY*posY))*((-posY)/(Math.sqrt(posX*posX+posY*posY)));
posX= (posX+(vx*t)+(ax*(t*t)/2));
posY= (posY+(vy*t)+(ay*(t*t)/2));
vx= vx+(2*ax*t);
vy= vy+ay*t;
}
}

El simulador que nos dan tiene la siguiente documentacion

Class Simulador
java.lang.Object
Simulador



public class Simuladorextends java.lang.Object
Programa que simula el funcionamiento de un satelite artificial que orbita alrededor de la tierra


Version:
(8 marzo 2012)
Author:
(Michael)


Constructor Summary
Simulador() ***********
*
Method Summary
static*void
main(java.lang.String[]*args) **********Programa principal que hace la simulacion
*
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
*

Constructor Detail

Simulador
public Simulador()


Method Detail

main
public static void main(java.lang.String[]*args)
Programa principal que hace la simulacion


<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>> >>

Os he pasado esta clase Simulador porque la segunda parte del ejercicio es:

<<<<<<<<<Parte B: Modificaciones al main
• observar el código del método main y localizar los puntos en que se
crea el objeto Satelite, se avanza su tiempo y se obtienen sus
posiciones (posX,posY)
• modificar el código del main para añadir un segundo satélite
- el primer satélite tiene el número 1 como identificador
- usar el número 2 como identificador del segundo satélite; así se pintará
de otro color
- el satélite número 2 se acelera durante su órbita, usando el nuevo
método>>>>>>>>>>>>>>>>>>>>>>>>


<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>> >>

Yo he conseguido que me salgan dos satelites orbitando, el original que me piden en partes anteriores del ejercicio y otro que me he inventado, como habeis podido observar necesito que el segundo cumpla las caracteristicas que me imponen.

Muchas gracias de antemano!