Pregunta

AQUÍ Mindbloque aquí, pero no puedo entender cómo hacer esto menos feo:

def getClosestSphere(ray: Ray, spheres: List[Sphere]): Sphere = {
    val map = new HashMap[Double, Sphere]
    for (sphere <- spheres) {
      val intersectPoint = sphere.intersectRay(ray)
      map.put(intersectPoint, sphere)
    }    
    map.minBy(_._1)._2  
  }

¿Puedes ver lo que estoy haciendo? Tengo una lista de esferas, donde cada esfera tiene un método intersectray, que devuelve un doble.

Quiero tomar la esfera con el resultado más pequeño de esa función. Sé que hay una buena construcción funcional para dejarme hacer esto en una línea, simplemente no puedo verlo :(

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top