public void esRecorribleTest() { ObtenerMapa mapa = new ObtenerMapa(); bool comprobar; Vector3 posicion; mapa.setRadio(0.5f); posicion = new Vector3(45.0f, 0.0f, 0.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsTrue(comprobar, "1) No es recorrible y debia serlo."); posicion = new Vector3(45.0f, 0.0f, 40.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsTrue(comprobar, "2) No es recorrible y debia serlo."); posicion = new Vector3(-45.0f, 0.0f, -40.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsTrue(comprobar, "3) No es recorrible y debia serlo."); posicion = new Vector3(0.0f, 0.0f, 0.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsFalse(comprobar, "4) No es obstaculo y debia serlo."); posicion = new Vector3(-31.0f, 0.0f, -25.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsFalse(comprobar, "5) No es obstaculo y debia serlo."); posicion = new Vector3(-4.0f, 0.0f, -38.0f); comprobar = mapa.esRecorrible(posicion); Assert.IsFalse(comprobar, "6) No es obstaculo y debia serlo."); }
public void lineaVisionTest() { ObtenerMapa mapa = new ObtenerMapa(); bool comprobar; Vector3 posicion1; Vector3 posicion2; mapa.setRadio(0.5f); posicion1 = new Vector3(45.0f, 0.0f, 0.0f); posicion2 = new Vector3(0.0f, 0.0f, 0.0f); comprobar = mapa.lineaVision(posicion1, posicion2); Assert.IsFalse(comprobar, "7) No deberia haber linea de vision."); posicion1 = new Vector3(45.0f, 0.0f, 40.0f); posicion2 = new Vector3(-31.0f, 0.0f, -25.0f); comprobar = mapa.lineaVision(posicion1, posicion2); Assert.IsFalse(comprobar, "8) No deberia haber linea de vision."); posicion1 = new Vector3(-45.0f, 0.0f, -40.0f); posicion2 = new Vector3(-4.0f, 0.0f, -38.0f); comprobar = mapa.lineaVision(posicion1, posicion2); Assert.IsFalse(comprobar, "9) No deberia haber linea de vision."); posicion1 = new Vector3(-45.0f, 0.0f, 45.0f); posicion2 = new Vector3(45.0f, 0.0f, 45.0f); comprobar = mapa.lineaVision(posicion1, posicion2); Assert.IsTrue(comprobar, "9) No deberia haber obstaculos en el camino."); posicion1 = new Vector3(45.0f, 0.0f, 0.0f); posicion2 = new Vector3(45.0f, 0.0f, 40.0f); comprobar = mapa.lineaVision(posicion1, posicion2); Assert.IsTrue(comprobar, "10) No deberia haber obstaculos en el camino."); }
public override void iniciarCalcularRuta(Vector3 v_inicio, Vector3 v_meta, float v_angulo_coche, ObtenerMapa v_mapa, Parrilla v_parrilla, float p_peso, int tam_parrilla, int v_ancho, int v_largo, bool v_dibujar_casillas) { Vector3[] array_vertices; dibujar_casillas = v_dibujar_casillas; ancho = v_ancho; largo = v_largo; //cerrados = new Cerrados (ancho, largo); cerrados = new Cerrados(); sucesores = new List <Nodo> (); abiertos = new Abiertos(tam_parrilla, ancho, largo); //abiertos = new Abiertos (tam_parrilla); peso = p_peso; abiertos.getEmpty(); cerrados.getEmpty(); vector_inicio = v_inicio; vector_meta = v_meta; mapa = v_mapa; parrilla = v_parrilla; vertices = new HashSet <Vector3> (); array_vertices = mapa.getVertices(); foreach (Vector3 vertice in array_vertices) { vertices.Add(vertice); } vertices.Add(vector_meta); meta_encontrada = false; nodo_final = null; nodo_actual = null; nodo_inicio = new Nodo(); nodo_inicio.vector = vector_inicio; nodo_inicio.vector_hybrid = vector_inicio; nodo_inicio.angulo_hybrid = v_angulo_coche; nodo_inicio.padre = null; nodo_inicio.coste = 0; abiertos.add(nodo_inicio); mapa.setRadio(0.5f); // array_mapa_obstaculos = new int[ancho + 1, largo + 1, 1]; tiempo_inicio = Time.realtimeSinceStartup; crearMapaObstaculos(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de obstaculos creado en: " + (tiempo_final - tiempo_inicio) + " segs."); tiempo_inicio = Time.realtimeSinceStartup; array_mapa_distancias = crearMapaDistancias(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de Distancias creado en: " + (tiempo_final - tiempo_inicio) + " segs."); tiempo_inicio = Time.realtimeSinceStartup; array_heuristica_obstaculos = crearMapaHeuristicaObstaculos(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de heuristica de obstaculos creado en: " + (tiempo_final - tiempo_inicio) + " segs."); radio_giro_rad = ((Constantes.distancia / Constantes.coche_largo) * Mathf.Tan(Mathf.Deg2Rad * Constantes.coche_max_angulo)); radio_giro = Mathf.Rad2Deg * radio_giro_rad; Debug.Log("Radio giro rad: " + radio_giro_rad); Debug.Log("Radio giro: " + radio_giro); }