Class IndexedFRLayoutAlgorithm2D<V,E>
java.lang.Object
org.jgrapht.alg.drawing.BaseLayoutAlgorithm2D<V,E>
org.jgrapht.alg.drawing.FRLayoutAlgorithm2D<V,E>
org.jgrapht.alg.drawing.IndexedFRLayoutAlgorithm2D<V,E>
- Type Parameters:
V- the graph vertex typeE- the graph edge type
- All Implemented Interfaces:
LayoutAlgorithm2D<V,E>
Fruchterman and Reingold Force-Directed Placement Algorithm using the
Barnes-Hut indexing
technique with a QuadTree.
The Barnes-Hut indexing technique is described in the following paper:
- J. Barnes and P. Hut. A hierarchical O(N log N) force-calculation algorithm. Nature. 324(4):446--449, 1986.
-
Nested Class Summary
Nested classes/interfaces inherited from class FRLayoutAlgorithm2D
FRLayoutAlgorithm2D.InverseLinearTemperatureModel, FRLayoutAlgorithm2D.TemperatureModel -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDefault $\theta$ value for approximation using the Barnes-Hut techniqueprotected longprotected doubleFields inherited from class FRLayoutAlgorithm2D
comparator, DEFAULT_ITERATIONS, DEFAULT_NORMALIZATION_FACTOR, iterations, normalizationFactor, optimalDistance, rng, temperatureModelSupplierFields inherited from class BaseLayoutAlgorithm2D
initializer -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new layout algorithmIndexedFRLayoutAlgorithm2D(int iterations, double theta) Create a new layout algorithmIndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor) Create a new layout algorithmIndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor, Random rng) Create a new layout algorithmIndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor, Random rng, double tolerance) Create a new layout algorithm -
Method Summary
Modifier and TypeMethodDescriptioncalculateRepulsiveForces(Graph<V, E> graph, LayoutModel2D<V> model) Calculate the repulsive forces between verticeslongGet the total number of saved comparisons due to the Barnes-Hut technique.voidLayout a graph.Methods inherited from class FRLayoutAlgorithm2D
attractiveForce, calculateAttractiveForces, repulsiveForceMethods inherited from class BaseLayoutAlgorithm2D
getInitializer, init, setInitializer
-
Field Details
-
DEFAULT_THETA_FACTOR
public static final double DEFAULT_THETA_FACTORDefault $\theta$ value for approximation using the Barnes-Hut technique- See Also:
-
theta
protected double theta -
savedComparisons
protected long savedComparisons
-
-
Constructor Details
-
IndexedFRLayoutAlgorithm2D
public IndexedFRLayoutAlgorithm2D()Create a new layout algorithm -
IndexedFRLayoutAlgorithm2D
public IndexedFRLayoutAlgorithm2D(int iterations, double theta) Create a new layout algorithm- Parameters:
iterations- number of iterationstheta- parameter for approximation using the Barnes-Hut technique
-
IndexedFRLayoutAlgorithm2D
public IndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor) Create a new layout algorithm- Parameters:
iterations- number of iterationstheta- parameter for approximation using the Barnes-Hut techniquenormalizationFactor- normalization factor for the optimal distance
-
IndexedFRLayoutAlgorithm2D
public IndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor, Random rng) Create a new layout algorithm- Parameters:
iterations- number of iterationstheta- theta parameter for the Barnes-Hut approximationnormalizationFactor- normalization factor for the optimal distancerng- the random number generator
-
IndexedFRLayoutAlgorithm2D
public IndexedFRLayoutAlgorithm2D(int iterations, double theta, double normalizationFactor, Random rng, double tolerance) Create a new layout algorithm- Parameters:
iterations- number of iterationstheta- theta parameter for the Barnes-Hut approximationnormalizationFactor- normalization factor for the optimal distancerng- the random number generatortolerance- tolerance used when comparing floating point values
-
-
Method Details
-
layout
Description copied from interface:LayoutAlgorithm2DLayout a graph.- Specified by:
layoutin interfaceLayoutAlgorithm2D<V,E> - Overrides:
layoutin classFRLayoutAlgorithm2D<V,E> - Parameters:
graph- the graphmodel- the layout model to use
-
calculateRepulsiveForces
Description copied from class:FRLayoutAlgorithm2DCalculate the repulsive forces between vertices- Overrides:
calculateRepulsiveForcesin classFRLayoutAlgorithm2D<V,E> - Parameters:
graph- the graphmodel- the model- Returns:
- the displacement per vertex due to the repulsive forces
-
getSavedComparisons
public long getSavedComparisons()Get the total number of saved comparisons due to the Barnes-Hut technique.- Returns:
- the total number of saved comparisons
-