Estoy tratando de implementar la navegación de campo de flujo, como se describe en http://grail.cs.washington.edu/projects/crowd-flows/ pero no puedo entender cómo se supone que debe manejar la función de densidad en la Figura 4 del documento radio de la unidad
¿Alguien ha implementado eso y puede proporcionar más información?
Esta es la parte en cuestión:
Su algoritmo parece estar usando solo 4 celdas, apuntando a la parte inferior izquierda de la unidad, entonces, ¿es este algún tipo de núcleo que debe aplicarse varias veces?
Gracias.
Respuestas:
No, no es un "núcleo que debe aplicarse varias veces". Simplemente aplica las fórmulas tal como están escritas, una vez.
Sin embargo, es una especie de regla extraña, y no se describe muy claramente. Déjame intentar aclararlo un poco:
Primero, encuentre las cuatro celdas cuya esquina compartida está más cerca de la unidad. La unidad contribuirá con una cantidad de densidad distinta de cero solo a esas celdas. Llame a esas celdas A, B, C y D como en la figura 4 (b).
Deje Δx y Δy ser la distancia horizontal y vertical de la unidad desde el centro de la celda A, medida en unidades de un ancho / alto de celda.
Sea ρ A = min (1 − Δx, 1 − Δy) λ , ρ B = min (Δx, 1 − Δy) λ , ρ C = min (Δx, Δy) λ y ρ D = min (1 − Δx, Δy ) λ , como se describe en el documento.
Deje que la unidad contribuya con la densidad ρ A a la celda A, la densidad ρ B a la celda B, la densidad ρ C a la celda C y la densidad ρ D a la celda D.
Como dije, la regla es un poco extraña, y no tengo una interpretación geométrica obvia que ofrecer. Sin embargo, satisface las propiedades esperadas que:
Cuando la unidad está exactamente en el medio de cualquier celda X, entonces (independientemente de cuál de A, B, C o D elijamos que sea X) contribuye 1 λ = 1 unidad de densidad a la celda X y 0 unidades de densidad a Cualquier otra celda.
Cuando la unidad está exactamente en la esquina de cuatro celdas, contribuye (1/2) λ unidades de densidad a cada una de las cuatro celdas (y nada a ninguna otra celda, por definición).
Sin embargo, tenga en cuenta que, utilizando esta regla, la cantidad total de densidad aportada por una unidad a todas las celdas no es constante, ni siquiera si λ = 1. En particular, cuando la unidad está exactamente en el punto medio del borde entre dos celdas, contribuye (1/2) λ unidades de densidad a esas dos celdas, y nada a ninguna otra celda. Por lo tanto, llamar al valor resultante una "densidad" parece un poco engañoso.
Editar: Otra forma de escribir las fórmulas para ρ A , ρ B , ρ C y ρ D , que puede hacer más aparente la simetría de las definiciones, es definir d X = max (| x - x X |, | y - y X |) como la distancia del tablero de ajedrez de la unidad en (x, y) desde el centro de la celda X en (x X , y X ), medida en anchos / alturas de celda. Entonces, para cualquier celda X,
fuente