2017-07-24 4 views
0


Ich benutze cytoscape.js und ich fügte Layouts zur Anwendung (kontinuierliche und normale). Für normale (wie Kreise, zufällig, concetrici etc) Animation funktioniert super. Ich weiß, dass kontinuierliche Layouts auf Simulation in Echtzeit basieren. Es funktioniert gut für springy Layout, aber (für die gleichen Daten) cose Layout und Spread-Layout-Simulation ist nicht sichtbar (oder funktioniert nicht, aber ich denke, dass es so schnell ist, die vor dem Laden der Seite berechnet wird). Gibt es eine Möglichkeit, diese zu verlangsamen, damit die Simulation/Animation sichtbar wird? Ich habe Dokumentation gelesen und versucht, Einstellungen zu ändern (animationThreshold, maxSimulationTime, initialTemp, maxFruchtermanReingoldIterations, maxExpandIterations), aber es hilft nicht. Hier sind Beispiele mit Konfigurationswerten.
für Spread-Layout:Simulation für cose und Spread Layout (cytoscape.js)

expandingFactor: -1.0 
maxFruchtermanReingoldIterations: 20 
maxExpandIterations: 20 
animate: true 
maxSimulationTime: 5000 
randomize: false 

und für cose:

animationThreshold: 2500 
animate: true 
nodeRepulsion: (node) -> 
    400000 
gravity: 80 
numIter: 1000 
initialTemp: 200 
coolingFactor: 0.99 
minTemp: 1.0 
randomize: false 
maxSimulationTime: 50000 


Vielen Dank für Hilfe,
Izabella

Antwort

1

Kraft-directed/Physik-Simulationen Layouts laufen/in Echtzeit animieren. Wenn man es künstlich verlangsamt, würde es sich ausbreiten, es aber auch sehr unruhig machen.

CoSE-Bilkent hat animate: 'end' Unterstützung. Diese Funktion wird unter der Annahme, dass das Endergebnis des Layouts nahezu sofort generiert wird, von den Startpositionen zu den Endpositionen mit den Cytoscape.js-Animations-APIs animiert. Dies ergibt einen ähnlichen Effekt wie ein diskretes Layout.

Das gebündelte CoSE wird animate: 'end' Unterstützung in 3.2 haben. Wenn Sie die Funktion in anderen Layout-Erweiterungen sehen möchten, können Sie eine Pull-Anfrage machen (basierend auf CoSE-Bilkent's approach).

+0

Vielen Dank für die Antwort, ich habe CoSE-Bilkent anstelle von Cose verwendet, es funktioniert perfekt! :) – banbella