Foros del Web » Programación para mayores de 30 ;) » Java »

Radar de espacio aéreo, cambio de imagen según la situación.

Estas en el tema de Radar de espacio aéreo, cambio de imagen según la situación. en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/10/2013, 09:30
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 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.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:31.