| 107 | var skipDistance = 175; |
| 108 | |
| 109 | function forceDirected_skip(layout, graph) { |
| 110 | for (let a = 0; a < graph.size; a++) { |
| 111 | for (let b = a + 1; b < graph.size; b++) { |
| 112 | let apart = layout[b].minus(layout[a]); |
| 113 | let distance = Math.max(1, apart.length); |
| 114 | let connected = graph.neighbors(a).has(b); |
| 115 | if (distance > skipDistance && !connected) continue; |
| 116 | let size = forceSize(distance, connected); |
| 117 | let force = apart.times(1 / distance).times(size); |
| 118 | layout[a] = layout[a].plus(force); |
| 119 | layout[b] = layout[b].minus(force); |
| 120 | } |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | function forceDirected_noVector(layout, graph) { |
| 125 | for (let a = 0; a < graph.size; a++) { |