Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/10/2013, 09:30
sathory
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Radar de espacio aéreo, cambio de imagen según la situación.

Hola, estoy trabajando en un proyecto de clase, es un simulador de radar de espacio aéreo.

La idea es que cuando 2 vuelos se encuentran cerca, la imagen que representa el vuelo cambie. Y cuando está a una distancia prudente, vuelva a la imagen normal.

Código:
private void revisarConflictos(ArrayList<Vuelo> vuelosEnArea) {


        for (int i = 0; i < vuelosEnArea.size(); i++) {
            for (int j = i + 1; j < vuelosEnArea.size(); j++) {

                Coordenada posicionVuelo1 = vuelosEnArea.get(i).getPosicionActual();
                Coordenada posicionVuelo2 = vuelosEnArea.get(j).getPosicionActual();

                double catetoX = Math.pow((posicionVuelo1.getPosicionX() - posicionVuelo2.getPosicionX()), 2);
                double catetoY = Math.pow((posicionVuelo1.getPosicionY() - posicionVuelo2.getPosicionY()), 2);

                double distancia = Math.sqrt(catetoX + catetoY);

                if (distancia < 100) {
                    vuelosEnArea.get(i).establecerImagen(true);
                    vuelosEnArea.get(j).establecerImagen(true);
                } else {
                    vuelosEnArea.get(i).establecerImagen(false);
                    vuelosEnArea.get(j).establecerImagen(false);
                }
            }
        }
    }


El método que estoy usando para establecer una imagen diferente es el siguiente.

Código:
public void establecerImagen(boolean conflicto) {
        try {
            if (conflicto) {
                imagen = ImageIO.read(this.getClass().getResource("avion_rojo.png"));
            } else {
                imagen = ImageIO.read(this.getClass().getResource("avion_azul.png"));
            }
        }
        catch (IOException ex) {
            Logger.getLogger(Vuelo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

El problema que tengo con esto, es que en ocasiones uno de los vuelos no está recibiendo el cambio de imagen o ignora a los demás.

No he podido encontrar el problema, en cuanto a la comparación de las distancias o si puede ser algo mas.

Gracias por su ayuda.