Was ist der 'e' Parameter, der an die d3.js Force Tick Callback Funktion übergeben wird?

8

unten ist ein normales Beispiel für die Tick-Funktion:

%Vor%

Wer kann mir die Definition von "e" sagen? Welche Eigenschaften hat es? Ich kann keine Beschreibung von "e" finden, und was bedeutet e.alpha? Ja, ich habe Google verwendet, aber ohne Ergebnisse.

Danke für die Hilfe, die Sie unten gegeben haben.

Ich kopiere einen Code, der

verwendet %Vor%

also ist es nur der Fall, den Sie erraten. Ich bin neu zu d3, ein Skim of force.layout API gab mir keine Ahnung. Danke für deine wertvolle Zeit!

    
spikeyang 09.10.2014, 15:00
quelle

1 Antwort

14

Ohne den vollständigen Kontext Ihrer "normalen" Funktion, ist dies ein bisschen eine Vermutung, aber hier geht es:

tick wird in vielen Kontexten innerhalb von d3 verwendet. Die Einfügung von alpha deutet darauf hin, dass dies ein force Layout-Tick-Funktion , die vom Force-Layout-Objekt bei einem Tick-Ereignis aufgerufen wird. In diesem Fall wäre e das Tick-Ereignis Objekt.

Es gibt nicht viel Dokumentation über das Tick-Ereignis, da die meisten Beispiele es nicht verwenden. Wenn Sie den Quellcode ansehen, sehen Sie

%Vor%

Mit anderen Worten, das Tick-Ereignis ist eine von drei Arten von benutzerdefinierten Ereignissen, die im d3-Quellcode mithilfe der erstellt wurden d3.dispatch Prozess. Das Ereignis tick wird insbesondere am Ende der internen Tick-Funktion ausgelöst und enthält nur eine benutzerdefinierte Eigenschaft: den aktuellen Parameter alpha im Force-Layout. Damit diese Ereignisse tatsächlich irgendwohin gehen, ist die on -Methode des Event-Dispatcher-Objekts rebound aktiviert zu dem Force-Layout-Objekt, so dass der Benutzer Listener-Funktionen für die benutzerdefinierten Ereignisse registrieren kann.

Wenn all das viel zu viel d3 Interna für dich ist, konzentriere dich einfach auf diese Details:

  • e ist ein benutzerdefiniertes Ereignisobjekt, das bei jedem Aufruf von
  • an Ihre Tick-Funktion übergeben wird
  • e.alpha ist der aktuelle Alpha-Wert des Force-Layouts, der standardmäßig bei 0,1 beginnt und bei jedem Tick reduziert wird (entsprechend dem friction -Parameter), bis er unter 0,005 fällt und das Layout einfriert:

      

    Intern verwendet das Layout einen Kühlparameter alpha , der die Layout-Temperatur steuert: Wenn die physikalische Simulation auf ein stabiles Layout konvergiert, sinkt die Temperatur und die Knoten bewegen sich langsamer. Schließlich fällt alpha unter einen Schwellenwert und die Simulation stoppt vollständig, wodurch die CPU frei wird und ein Batterieverbrauch vermieden wird. ( Aus dem API-Wiki für force.start )

AmeliaBR 09.10.2014 20:34
quelle

Tags und Links