(layout, graph)
| 91 | } |
| 92 | |
| 93 | function forceDirected_noRepeat(layout, graph) { |
| 94 | for (let a = 0; a < graph.size; a++) { |
| 95 | for (let b = a + 1; b < graph.size; b++) { |
| 96 | let apart = layout[b].minus(layout[a]); |
| 97 | let distance = Math.max(1, apart.length); |
| 98 | let connected = graph.neighbors(a).has(b); |
| 99 | let size = forceSize(distance, connected); |
| 100 | let force = apart.times(1 / distance).times(size); |
| 101 | layout[a] = layout[a].plus(force); |
| 102 | layout[b] = layout[b].minus(force); |
| 103 | } |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | var skipDistance = 175; |
| 108 |