17 votes

Quelle est la différence entre alphaTarget et alphaMin ?

La description de l'API est confuse. Je m'attends à ce que target la valeur à partir de laquelle la simulation s'arrête, mais qu'en est-il de la valeur à partir de laquelle la simulation s'arrête ? target n'est pas définie dans l'API. Voir aussi alpha n'est pas défini dans l'API, mais je l'ai trouvé sur un autre site web : https://roshansanthosh.wordpress.com/2016/09/25/forces-in-d3-js-v4/

Un aspect important des simulations est l'alpha. L'alpha est un nombre compris entre 0 et 1 et définit le degré d'avancement de la simulation. Lorsqu'une simulation démarre, la valeur alpha est fixée à 1 et cette valeur décroît lentement, en fonction du taux alphaDecay, jusqu'à atteindre l'objectif alpha de la simulation. Lorsque la valeur alpha est inférieure à l'alphaTarget, la simulation s'arrête. Par défaut, la valeur alphaTarget est fixée à 0,1.

Maintenant pour l'API officielle :

simulation.alphaMin([min])

Si min est spécifié, définit l'alpha minimum au nombre spécifié dans la plage [0,1] et renvoie cette simulation. Si min n'est pas spécifié, renvoie la valeur alpha minimale actuelle, qui est par défaut de 0,001. La minuterie interne de la simulation s'arrête lorsque l'alpha actuel est inférieur à l'alpha minimum. Le taux de décroissance alpha par défaut de ~0.0228 correspond à 300 itérations.

simulation.alphaTarget([cible])

Si la cible est spécifiée, définit l'alpha cible actuel au nombre spécifié dans la plage [0,1] et renvoie cette simulation. Si la cible n'est pas spécifiée, renvoie la valeur alpha cible actuelle, qui est par défaut égale à 0.

14voto

Gerardo Furtado Points 61849

Des concepts comme alphaMin y alphaTarget sont, en effet, assez difficiles à comprendre, et en plus ils ne sont pas très bien expliqués dans les docs.

Vous avez presque tout compris dans votre commentaire :

OK, j'ai compris la plupart des choses en enregistrant alpha dans la console : alphaMin définit le niveau alpha où la simulation s'arrêtera (les événements de tic-tac cesseront de se produire), alphaTarget redéfinit où l'alpha finira (l'asymptote), donc au lieu d'aller lentement vers 0, il ira lentement vers 0.2. Dieu seul sait à quoi sert la cible alpha. . (c'est moi qui souligne)

Donc, la partie manquante pour que vous compreniez ces concepts est de comprendre "Quel est l'objectif de la cible alpha ?" . Et c'est très simple :

Comme vous le savez, alphaMin définit l'alpha minimum, qui sera responsable de l'arrêt de la simulation lorsque l'alpha actuel tombera en dessous. Ainsi, si nous définissons le paramètre alphaTarget à une valeur supérieure à la alphaMin la simulation ne s'arrête jamais.

Par exemple, jetez un coup d'œil à ce bl.ocks forké, où j'ai défini le paramètre alphaTarget à 0,8 : https://bl.ocks.org/GerardoFurtado/91368069a381009d30468aa9774c0de3/e58316dfdb05b68b02e5692c26b360c990da0383

Comme vous pouvez le voir, cette simulation se poursuivra indéfiniment.

Bien sûr, même avec une alphaTarget la simulation s'arrêtera si la valeur alphaMin est plus élevé, mais d'une manière assez désagréable et abrupte. Par exemple, alphaMin = 0.991 y alphaTarget = 0.99 : https://blockbuilder.org/GerardoFurtado/72961f5e63eb75b6202d9e24dc25e67b

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X