Sunteți pe pagina 1din 4

public class Punto {

private double x, y;

public Punto(double x, double y) {


this.x = x;
this.y = y;
}

public double getX() {


return x;
}

public void setX(double x) {


this.x = x;
}

public double getY() {


return y;
}

public void setY(double y) {


this.y = y;
}

String obtenerPosicion() {
String resultado = null;

resultado = "(" + this.getX() + ", " + this.getY() + ")";

return resultado;
}

public class MovimientoUniforme {

private double velocidad;

public MovimientoUniforme(double velocidad) {


this.velocidad = velocidad;
}

public double getVelocidad() {


return velocidad;
}

public void setVelocidad(double velocidad) {


this.velocidad = velocidad;
}

double recorrido(double t) {
double resultado = 0d;
resultado = this.getVelocidad() * t;
return resultado;
}

public class Recta {

private double a, b;

public Recta(double a, double b) {


this.a = a;
this.b = b;
}

public double getA() {


return a;
}

public void setA(double a) {


this.a = a;
}

public double getB() {


return b;
}

public void setB(double b) {


this.b = b;
}

double pendiente() {
double resultado = 0d;
resultado = Math.atan(a);
return resultado;
}

public class Movil {

private Punto posInicial;


private Punto posAnterior;
private Punto posActual;

private Recta trayectoria;


private MovimientoUniforme movimiento;
public Movil(Punto posInicial, Punto posAnterior, Punto posActual, Recta
trayectoria,
MovimientoUniforme movimiento) {

this.posInicial = posInicial;
this.posAnterior = posAnterior;
this.posActual = posActual;
this.trayectoria = trayectoria;
this.movimiento = movimiento;
}

void avanza(double t) {
Punto intermedio = new Punto(posActual.getX(), posActual.getY());
double distancia = movimiento.recorrido(t);

double alfa = trayectoria.pendiente();

double incrX = distancia * Math.cos(alfa);


double incrY = distancia * Math.sin(alfa);

posActual = new Punto(posAnterior.getX() + incrX,


posAnterior.getY() + incrY);
posAnterior = intermedio;
}

Punto posActual(){
return posActual;
}

Y AHORA; LO EJECUTAMOS

public class ProblemaDistanciaMoviles {

public static void main(String[] args) {


Punto inicial = new Punto(2,5);

Recta trayectoria=new Recta(2,1);

MovimientoUniforme movimi=new MovimientoUniforme(3);

Movil movil = new Movil(inicial,inicial,inicial,trayectoria,


movimi);

movil.avanza(3.5);

//HAZ EL SYSO CORRESPONDIENTE


movil.avanza(4);

//HAZ EL SYSO CORRESPONDIENTE

movil.avanza(7);

S-ar putea să vă placă și