J'essaie d'implémenter la navigation par flux, comme décrit dans http://grail.cs.washington.edu/projects/crowd-flows/ mais je ne comprends pas comment la fonction de densité de la figure 4 du document est censée gérer rayon de l'unité.
Quelqu'un a-t-il déjà mis cela en œuvre et peut-il fournir plus d'informations?
C'est la partie en question:
Leur algorithme semble n'utiliser que 4 cellules, pointant vers le bas à gauche de l'unité, est-ce donc une sorte de noyau qui doit être appliqué plusieurs fois?
Merci.
Réponses:
Non, ce n'est pas un "noyau qui doit être appliqué plusieurs fois". Vous appliquez simplement les formules telles qu'elles sont écrites, une fois.
C'est une sorte de règle étrange, cependant, et pas très clairement décrite. Permettez-moi d'essayer de clarifier un peu:
Tout d'abord, trouvez les quatre cellules dont le coin partagé est le plus proche de l'unité. L'unité ne fournira une quantité de densité non nulle qu'à ces cellules. Appelez ces cellules A, B, C et D comme dans la figure 4 (b).
Soit Δx et Δy la distance horizontale et verticale de l'unité par rapport au centre de la cellule A, mesurée en unités d'une largeur / hauteur d'une cellule.
Soit ρ A = min (1 − Δx, 1 − Δy) λ , ρ B = min (Δx, 1 − Δy) λ , ρ C = min (Δx, Δy) λ et ρ D = min (1 − Δx, Δy ) λ , comme décrit dans l'article.
Laissez l'unité contribuer à la densité ρ A de la cellule A, à la densité ρ B de la cellule B, à la densité ρ C de la cellule C et à la densité ρ D de la cellule D.
Comme je l'ai dit, la règle est un peu bizarre et je n'ai pas d'interprétation géométrique évidente à lui proposer. Il satisfait cependant aux propriétés attendues:
Lorsque l'unité est exactement au milieu de n'importe quelle cellule X, alors (quel que soit A, B, C ou D que nous choisissons X), elle contribue 1 λ = 1 unité de densité à la cellule X et 0 unité de densité à toute autre cellule.
Lorsque l'unité est exactement au coin de quatre cellules, elle contribue (1/2) unités de densité λ à chacune des quatre cellules (et rien à aucune autre cellule, par définition).
Cependant, notez que, en utilisant cette règle, la quantité totale de densité apportée par une unité à toutes les cellules n'est pas constante, même si λ = 1. En particulier, lorsque l'unité est exactement au milieu du bord entre deux cellules, il contribue (1/2) unités de densité λ à ces deux cellules, et rien à aucune autre cellule. Ainsi, appeler la valeur résultante une "densité" semble un peu trompeur.
Edit: Une autre façon d'écrire les formules pour ρ A , ρ B , ρ C et ρ D , qui peut rendre la symétrie des définitions plus apparente, est de définir d X = max (| x - x X |, | y - y X |) comme la distance de l' échiquier de l'unité à (x, y) du centre de la cellule X à (x X , y X ), mesurée en largeurs / hauteurs de cellule. Ensuite, pour toute cellule X,
la source