diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua b/Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua index 54ceddcc25a..9fa709a8053 100644 --- a/Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua +++ b/Master/texmf-dist/tex/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua @@ -7,7 +7,7 @@ -- -- See the file doc/generic/pgf/licenses/LICENSE for more information --- @release $Header: /cvsroot/pgf/pgf/generic/pgf/graphdrawing/lua/pgf/gd/force/SpringElectricalHu2006.lua,v 1.1 2012/11/27 17:24:25 tantau Exp $ +-- @release $Header$ local SpringElectricalHu2006 = {} @@ -97,7 +97,11 @@ function SpringElectricalHu2006:run() -- initialize node weights for _,node in ipairs(self.graph.nodes) do - node.weight = node:getOption('electric charge') + if node:getOption('electric charge') ~= nil then + node.weight = node:getOption('electric charge') + else + node.weight = 1 + end end -- initialize edge weights @@ -171,7 +175,7 @@ function SpringElectricalHu2006:run() -- set the spring length to the average edge length of the initial layout spring_length = 0 - for _,e in ipairs(coarse_graph.graph.edges) do + for _,edge in ipairs(coarse_graph.graph.edges) do spring_length = spring_length + edge.nodes[1].pos:minus(edge.nodes[2].pos):norm() end spring_length = spring_length / #coarse_graph.graph.edges @@ -205,7 +209,7 @@ function SpringElectricalHu2006:computeInitialLayout(graph, spring_length) -- position the loose node relative to the fixed node, with -- the displacement (random direction) matching the spring length - local direction = Vector.new{x = math.random(1, spring_length), y = math.random(1, spring_length)} + local direction = Vector.new{x = lib.random(1, spring_length), y = lib.random(1, spring_length)} local distance = 3 * spring_length * self.graph_density * math.sqrt(self.graph_size) / 2 local displacement = direction:normalized():timesScalar(distance) @@ -218,7 +222,7 @@ function SpringElectricalHu2006:computeInitialLayout(graph, spring_length) -- use a random positioning technique local function positioning_func(n) local radius = 3 * spring_length * self.graph_density * math.sqrt(self.graph_size) / 2 - return math.random(-radius, radius) + return lib.random(-radius, radius) end -- compute initial layout based on the random positioning technique @@ -518,4 +522,4 @@ end -- done -return SpringElectricalHu2006
\ No newline at end of file +return SpringElectricalHu2006 |